我有一个 shell 脚本,它使用 etherwake 来唤醒本地网络上的机器。
机器唤醒后,我不确定IP地址。
在尝试回答我自己的问题时,我想出了:
ip=$(ping -c 1 hostname | head -1 | awk '{print $3}' | sed 's/[()]//g')
该解决方案规定我知道远程计算机的主机名,这并不是那么繁重。
如果我只知道 MAC 地址,有没有办法获取 IP?
我认为没有一个命令可以做到这一点。一种黑客方法是在子网上执行 ping 扫描或广播 ping,然后查询 arp 表以获取 MAC 地址的 IP 地址。显然不是一个理想的解决方案。例子:
nmap -sP 192.168.1.0/24 >/dev/null && arp -an | grep <mac address here> | awk '{print $2}' | sed 's/[()]//g'
这里 nmap 将执行 ping 扫描并填充您的 arp 缓存。扫描完成后,可以使用 arp 命令打印 arp 表,然后使用 grep/awk 提取 IP 地址。您可以尝试用广播 ping 替换 nmap,但这可能不太可靠。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)