根据 MA​​C 地址查找 DHCP IP 地址

根据 MA​​C 地址查找 DHCP IP 地址

我需要通过网络重新安装一些计算机,但为了使安装正常工作,计算机需要具有其MAC地址在 DNS/DHCP 中注册,以便被识别并获取正确的 IP 地址,从而制定策略广告

问题在于,由于某种原因,计算机经常未在 DNS/DHCP 中注册,并且直到重新安装过程的后期才会注意到这一点,因此通过这种方式进行故障排除会浪费大量时间。

我想知道是否有某种方法可以通过 MAC 地址查询 DNS 服务器,并查看其是否正确注册到 IP 地址?

(我无法访问 AD。)

答案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)

相关内容