【发布时间】:2012-12-14 06:07:29
【问题描述】:
使用以机器名作为参数的 shell 脚本,然后确定主机是否在本地网络(与运行脚本的机器相同的网络)。
如何从机器名称中获取 IP 地址?一旦我知道了,我应该能够将该 IP 与本地 IP 进行比较,看看它们是否在同一个子网上。
【问题讨论】:
使用以机器名作为参数的 shell 脚本,然后确定主机是否在本地网络(与运行脚本的机器相同的网络)。
如何从机器名称中获取 IP 地址?一旦我知道了,我应该能够将该 IP 与本地 IP 进行比较,看看它们是否在同一个子网上。
【问题讨论】:
您可以使用nslookup (http://linux.die.net/man/1/nslookup)、dig (http://linux.die.net/man/1/dig) 或host (http://linux.die.net/man/1/host) 命令行实用程序。
例如,下面是运行 host 以从 DNS 服务器获取 stackoverflow.com 的 A 记录的结果:
$ host -tA stackoverflow.com
stackoverflow.com has address 69.59.197.21
【讨论】:
dig +short 可能是最好的脚本。 host 在不同版本中有不同的输出(去过那里,做过那个,受伤的自己)。
local network 是什么意思?子网或(Windows)域或局域网内?
您还可以查看traceroute 实用程序。
【讨论】: