由于我的 Linksys 路由器没有为计算机(PC、Mac 和 Linux)分配固定的本地 IP,我想编写一个脚本,以便每分钟,计算机将相互更新,以便
每台机器上将包含所有 PC 和 Mac 的名称列表以及指向其 apache 服务器的链接(指向http://192.168.1.102等)
它看起来像是一种找出本地 IP 地址的方法是在 PC 上通过 ipconfig,在 Mac 和 Linux 上通过 ifconfig,并且以编程方式进行,它将是 gethostbyname()。
但我试过 Ruby,那个
irb(main):001:0> require 'socket'
=> true
irb(main):002:0> p Socket::gethostbyname("localhost")
["Core2Duo", [], 2, "\177\000\000\001"]
irb(main):005:0> p Socket::gethostbyname("core2duo")
["Core2Duo", [], 2, "\300\250\001g"]
=> nil
和 ipconfig 实际上显示
IPv4 Address. . . . . . . . . . . : 192.168.1.103
那么这是正确的方法吗?我可以通过在 Ruby 中执行“ipconfig”来破解它,并使用正则表达式来获取结果,但使用更标准的方式会很好。