我有大约 40 台机器,我想知道它们的 IP 地址是多少。一种方法是登录这些盒子并使用命令找出它们的 IP 地址ifconfig
,但是还有其他简单的方法可以用来找出它吗?
我可以将所有机器保存在这样的 txt 文件中,并从 shell 脚本中读取它,然后我应该做什么来找出 IP 地址?
machineA
machineB
machineC
答案1
如果您使用 DNS,您可以使用host
, nslookup
,等工具dig
从主机名解析 IP。
您可以使用这一衬垫:
while IFS= read -r name; do host "$name"; done <hosts.txt
另外,如果您只想按顺序获取没有主机名的 IP 地址,您可以使用grep
:
while IFS= read -r name; do host "$name" | grep -o '[[:digit:]][^ ]*$'; done <hosts.txt
答案2
在您的 40 个系统之一中,安装此 arp 软件包
sudo apt-get install arp-scan
然后在该系统中运行:
sudo arp-scan --interface=eth0 --localnet
这样你就可以获得所有的ip
1) 远程执行
2) 每 10 分钟左右自动执行一次,然后自动保存到文本文件