Linux下检测IP地址冲突及解决方法

下面我们来看一个实例:

一台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信息。

相关推荐