答案1
据我所知,没有办法用 MAC 地址查询 DHCP 服务器,但您可以使用 ping 和计算机上的 ARP 表。
ping -b <broadcast address>
arp -a
将为您提供网络中所有主机的 MAC 地址和 IP 地址。
答案2
这些机器是否仅在安装时才需要特定的 IP 地址来设置策略?如果不是,为什么它们在安装时没有获得正确的地址?它们在部署后是否会被分配正确的 IP?
在我看来,在 DHCP 服务器中为每台机器的 MAC 地址创建静态条目就是您要寻找的解决方案。在您的帖子中,听起来您自己无法做到这一点,但如果有必要,您的系统管理员可能会为您做这件事。他也可能允许您以只读方式访问所有静态地址分配(以便您可以在安装前检查它们)。
答案3
我遇到了同样的问题:我有一个 MAC 地址,但 IP 地址却变了。在 Windows XP 上,广播 ping 似乎对我不起作用,而且我们的 Linux 机器位于不同的子网上,因此暴力破解让我:
for /l %i in (1,1,254) do ping -n 1 -l 1 -w 1 10.11.2.%i
其中 10.11.2.0 是我的子网。然后我可以这样做
arp -a
并查找/grep 我的已知 MAC 地址。(请注意,Windows 使用MAC 地址中的-
分隔符,而 Linux 使用:
)。
您还可以将其扩展到更大的子网,并添加额外的for
循环。
答案4
根据您网络的大小,它可以非常快速地扫描每台可能的机器。
device_hwaddr="XX:XX:XX:XX:XX"
# we ping every ip in the range 192.168.0.*
ip_last_number=0
while test $ip_last_number -ne 255; do
ping -c 1 192.168.0.$ip_last_number >/dev/null 2>&1 &
ip_last_number=$(($ip_last_number + 1))
done
# we search in the arp table if their is our device
echo $(arp|grep $device_hwaddr)