首页 > 其他 > 详细

ARP Implementation

时间:2014-04-27 08:18:03      阅读:525      评论:0      收藏:0      [点我收藏+]

>>> ARP()
<ARP |>
>>> _.show()
###[ ARP ]###
hwtype= 0x1
ptype= 0x800
hwlen= 6
plen= 4
op= who-has
hwsrc= ec:a8:6b:c4:bd:b0
psrc= 110.196.80.223
hwdst= 00:00:00:00:00:00
pdst= 0.0.0.0

  Scapy中ARP包的结构如上,windows下arp -a 打印出来的arp缓存比较完整,但是在同样网络下,ubuntu打印结果只有网关的记录,令人好奇。于是想着用scapy实现以下打印同一网关下所有主机的IP-MAC地址。不知道TCP/IP的实现是怎样的,一开始的想法,就是只发送一个包,Ether层是广播的,IP层也做成广播,即 Ether()/ARP(pdst=‘255.255.255.255‘),不过在scapy下试了一下,没成功,没有返回的包,也不知道为什么。只能用遍历了...

bubuko.com,布布扣
#script
pkts = []

#construct a list of arp packets
for i in range(256):
    pkts.append(ARP(pdst=10.196.80. + str(i)))

#parameter timeout is necessary here
ans, unans = sr(pkts, timeout=5)

ans.show()
bubuko.com,布布扣

悲剧的是,和在terminal中输入arp -a的结果一样,还是仅有一个网关,只能以后再说了

  怀疑可能和scapy这个包有关,有空用C/C++试一下

ARP Implementation,布布扣,bubuko.com

ARP Implementation

原文:http://www.cnblogs.com/Chocor/p/3691781.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!