从MAC地址查找DHCP IP地址

我有一些计算机需要通过networking重新安装,但为了安装正常工作,计算机需要在DNS / DHCP中注册其MAC地址 ,以便识别并获取正确的IP地址,从而实现策略来自AD 。

问题是由于某些原因,计算机通常没有在DNS / DHCP中注册,而且在重装过程的后期阶段之前不会被注意到,因此浪费了大量的时间来解决这个问题。

我想知道是否有某种方法来查询具有MAC地址的DNS服务器,并查看它是否正确注册到IP地址?

(我没有访问AD。)

AFAIK,没有办法查询具有MAC地址的DHCP服务器,但是您可以在您的计算机上使用ping和ARP表。

ping -b <broadcast address> arp -a 

会给你networking中所有主机的MAC地址和IP地址。

根据networking的大小,可以非常快速地扫描每台可能的机器。

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

我有同样的问题:我有一个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使用-分隔符,而Linux使用:在MAC地址中)。

你也可以扩展这个更大的子网,额外的for循环。

您可以使用反向地址parsing协议(RARP) 。 它通过广播将IP地址parsing为给定的MAC地址。 这是旧的(甚至通过DHCP obsolte),但它应该工作。

这些机器是否只在安装时需要一定的IP地址才能设置策略? 如果没有,为什么他们没有在安装时得到正确的地址? 他们被部署后,他们是否被分配了正确的IP?

在我看来,在DHCP服务器中为每台计算机的MAC地址创build静态条目是您正在寻找的解决scheme。 在你的文章中,你听起来像不能自己做,但如果有必要,你的系统pipe理员可能会为你做。 他也可能允许你只读访问所有的静态地址分配(所以你可以在安装前检查它们)。

dynamicIP地址通常是从分离的范围中select的。 例如,静态192.168.0.0/25,dynamic192.168.0.128/25。 这取决于你的configuration。

如果你没有访问DHCP服务器的configuration,我不认为有其他的方法来检查它是静态的还是dynamic的。

DNS服务器:不。

但是,使用DHCP服务器,您可以使用[netsh DHCP]( http://technet.microsoft.com/en-us/library/bb490941.aspx )命令。

我通常喜欢做的只是从特定的DHCP范围拉条目,然后pipe只输出匹配您的MAC地址。 即

 Netsh DHCP server \\<myserver> scope <192.168.0.0> show clients | findstr "<YourMACAddressHere>"