ARP包模拟
先介绍下环境
家里2台电脑,1个无线路由器
无线路由器IP 192.168.1.1
我的电脑 A 192.168.1.100
另一台 B 192.168.1.101
我模拟 A-》B的 ARP请求包。
广播形式发包
可B那头没有收到A的广播包
有谁帮忙分析下是什么原因
[解决办法]
IP地址就是一个4字节的UINT或者说是ULONG;抓到的是网络字节顺序。应该是对的。
前面(转到的是后面)变成0,是因为掩码是255.255.0.0吧
[解决办法]
arp协议(地址解析协议),用来查找网络上的设备,属于第3层协议,例如ip为192.168.1.100/24的pcA想与ip为192.168.1.101/24的pc的通信,通过子网掩码得知两pcB位于同一网段,但其arp表中并没有B的Mac地址ip地址对应,于是A发出一个arp请求,请求中包含A的Mac地址、B的ip地址,arp数据报的源ip为A的ip,目的ip为广播地址ip(255.255.255.255),这样本网段的所有网络设备都会收到这个数据报,同时这些设备arp表中没有AMac-ip对应的设备一般情况下都会将A的对应信息添加到arp表中,解析数据报后,其他设备将数据报忽略,B会直接向A发送一个回应,这里的路由器收到数据报并解析后只是将其忽略,并不将数据报送到其他子网。如果A已经知道B,则A不会向网络发出arp数据报。如果A与B不在同一网段,则A会用源ip和目标ip作为ip,用路由器在A所在网段的Mac地址发送请求,如果A的arp表中没有路由器ip(网关ip)对应的Mac地址,首先会对网关ip做一个arp查找,路由器知道A的目的地ip后,同样会在路由器在B网段的arp表中找B,同时将A送来数据报中的源Mac地址变为路由器在B所在网段上的Mac地址,找到B将目标Mac变为B的Mac地址.如果路由器与B不在同一网段,则路由器会采用同样的办法将数据报传给其知道的下一个最大权值路由器或指定的路由器。这里的每一步都有可能发生arp请求。如果动态获取ip,还会发生dhcp服务器的查找。如果使用域名,还会产生dns服务器的查找,所以要看抓到哪个ip的arp查找。