下面我们来看一个实例:
一台linux主机IP:192.168.0.25MAC:00:14:k2:5d:8e:b2
一台windows主机IP:192.168.0.25MAC:00:25:e4:6a:4b:f4
两台主机的IP地址相同(IP:192.168.0.25),MAC地址不同
则windows主机会提示IP地址冲突,而linux主机无任何提示
那么如何知道自己的linux主机是否与网络中其它的windows主机IP地址冲突呢?
其实很简单,在linux主机端执行
#arping192.168.0.25
Unicastreplyfrom192.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命令是以广播地址发送arppackets,以太网内所有的主机都会收到这个arppackets,但是本机收到之后不会Reply任何信息。当我们在linux主机端上执行下面的命令时:
arping192.168.0.25 会默认使用eth0,向局域网内所有的主机发送一个:
whohas192.168.0.25的arprequest,tell192.168.0.25yourmacaddress,
当这台windows主机端收到这个arppackets后,则会应答:
Iam192.168.0.25,mac是00:25:e4:6a:4b:f4",这样我们会收到mac地址为00:25:e4:6a:4b:f4的windows主机的Reply信息。