IP 地址冲突检测(解决某种情况下 arp 机制无效的问题)
来源:互联网 发布:install ubuntu 编辑:程序博客网 时间:2024/05/29 04:07
1. 参考代码
先上一个比较好的 arp 参考代码
http://blog.csdn.net/wanxiao009/article/details/5622296#
2. 解决方案
很多博文介绍了 arp 机制检测 IP 地址冲突的原理与实现, 大致实现如下:
- 使用广播 MAC 地址发送 arp 请求
- 发送者 IP 地址和 MAC 地址分别填写本机的 IP 地址和 MAC 地址
- 目标者 IP 地址和 MAC 地址分别填写待检测的 IP 地址和 00:00:00:00:00:00 地址
而检测 IP 地址冲突的情况分为以下两种:
- 发送者 IP 地址和需要检测的 IP 地址不同(一般出现在 DHCP 请求到 IP 地址后检测局域网中该 IP 地址是否已使用,若没有才使用本次请求的 IP 地址)
- 发送者 IP 地址和需要检测的 IP 地址相同
很多博文介绍 arp 机制进行 IP 地址冲突的检测基本上只适用第一种情况,因为只有这种情况才能接收到 arp reply.
在第二种情况下,使用大家介绍的方法(在发送 arp 请求时把发送者 IP 地址和目标者 IP 地址都填写本机的 IP 地址),很难接收到 arp reply,或者接收不到响应.
所以面对第二种情况,需按照如下方式来填写 arp 协议字段值:
- 发送者的 MAC 地址和 IP 地址分别填写本机的 MAC 地址和 0.0.0.0 IP 地址
- 接收者的 MAC 地址和 IP 地址分别填写 00:00:00:00:00:00 地址和本机 IP 地址(需检测冲突的 IP 地址)
3. WIN7 系统检测 IP 地址冲突的过程
通过抓取 WIN7 系统检测 IP 地址冲突时进行的 arp 请求得知,也是按照上述方式进行的.
抓取准备工作:手机和电脑处于同一局域网,首先把手机设置为静态 IP(如: 192.168.1.200),然后把电脑也设置成同样的静态 IP,在点击确认的那一刻,可以看到抓包软件抓到的 arp request 和 arp reply,同时电脑上也会提示 IP 地址冲突.
电脑发送的 arp 请求
接收到的 arp reply
4. 遇到的问题
- 当设备上存在有线网卡和无线网卡,并都连接同一局域网时,尽管两个网卡的 IP 地址不相同,但是当有线网卡检测 IP 地址冲突时,无线网卡也会发送 arp reply。
解决方法:可以断开无线网卡的连接,再进行有线网卡 IP 地址冲突的检测。
5. 结语
希望以上介绍,能够帮助到大家,在需要实现检测 IP 地址冲突的功能时,不至于像博主一样耗费了那么多时间.
阅读全文
0 0
- IP 地址冲突检测(解决某种情况下 arp 机制无效的问题)
- 解决IP地址冲突的问题
- ARP 应用——检测IP地址冲突
- listview的itemonclick在某种情况下点击无效
- linux下写程序检测ip冲突(ARP)
- linux下写程序检测ip冲突(ARP)
- 如何解决电脑ip地址冲突的问题
- 如何解决IP地址冲突问题
- 电脑显示IP地址冲突,2小点解决此情况
- 解决ip地址冲突
- 解决ip地址冲突
- 解决IP地址冲突
- Centos7配置ip地址(针对eth0配置无效的情况下,可以ping百度)
- 解决IP地址冲突的方法
- 解决IP地址冲突的方法
- Linux检测IP地址冲突
- Linux中如何检测IP地址冲突问题
- 在linux下检测arp冲突
- sort -- 文本排序工具
- Asteroids
- Hadoop学习笔记(一)
- 关于spring的配置文件总结
- Java的插入排序
- IP 地址冲突检测(解决某种情况下 arp 机制无效的问题)
- effective C++ 条款十七解读
- MYSQL报错注入方法整理
- Linux---gcc 编译
- MySQL的存储过程
- c3p0在hibernate中的配置
- spring之Bean的生命周期
- Linux内核编译运行
- 客户流失预测--基于R语言C5.0