下面我们来看一个实例:
一台linux主机 IP:192.168.0.25 MAC: 00:14:k2:5d:8e:b2
一台windows主机 IP:192.168.0.25 MAC: 00:25:e4:6a:4b:f4
两台主机的IP地址相同(IP:192.168.0.25),MAC地址不同
则windows主机会提示IP地址冲突,而linux主机无任何提示
那么如何知道自己的linux主机是否与网络中其它的windows主机IP地址冲突呢?
其实很简单,在linux主机端执行
#arping 192.168.0.25
Unicast reply from 192.168.0.25 [00:25:e4:6a:4b:f4] 1.390ms
如果没有任何信息,则表示网内我的IP是唯一的
如果有以上信息,则表示网内有一台MAC地址为00:25:e4:6a:4b:f4的主机IP地址与我相同,这时可以通过ifconfig命令验证,你会发现:本机的MAC地址是00:14:k2:5d:8e:b2。我们可以用局域网扫描软件找到MAC地址为00:25:e4:6a:4b:f4的主机,并将其隔离或更换IP地址。
原理:arping命令是以广播地址发送arp packets,以太网内所有的主机都会收到这个arp packets,但是本机收到之后不会Reply任何信息。当我们在linux主机端上执行下面的命令时:
arping 192.168.0.25 会默认使用eth0,向局域网内所有的主机发送一个:
who has 192.168.0.25的arp request,tell 192.168.0.25 your mac address,
当这台windows主机端收到这个arp packets后,则会应答:
I am 192.168.0.25 , mac是00:25:e4:6a:4b:f4",这样我们会收到mac地址为00:25:e4:6a:4b:f4的windows主机的Reply信息。