scapy构造打印ARP数据包

scapy构造打印ARP数据包

用于以太网的ARP请求/应答分组格式

各字段含义:

  帧类型:表示数据部分用什么协议封装(0800表示IP,0806表示ARP,8035表示RARP)。

  硬件类型:表示硬件地址的类型(其中,值为1表示以太网地址,其他还可能表示令牌环地址)。

  硬件地址长度:指出该报文中硬件地址的长度(ARP报文中,它的值为6)。

  协议地址长度:指出该报文中协议地址的长度(ARP报文中,它的值为4)。

  op:操作字段,共有4种类型(1:ARP请求,2:ARP应答,3:RARP请求,4:RARP应答)。

利用scay发送接受ARP包:

  代码:

#coding:utf-8 from scapy.all import Ether from scapy.all import ARP from scapy.all import srp arp = Ether(#构造以太网头 src='http://www.likecs.com/64:6E:69:03:63:32',#本机MAC dst='FF:FF:FF:FF:FF:FF'#广播发送 )/ARP( op=1,#发送arp请求 hwsrc='http://www.likecs.com/64:6E:69:03:63:32',#发送端以太网地址 psrc='10.50.253.232',#发送端ip hwdst='00:00:00:00:00:00',#目的以太网地址 pdst='10.50.0.1'#目的ip地址 ) res = srp(arp,timeout=5) string = """ --------result-------- hwtype :%s ptype :%s hwlen :%s plen :%s op :%s hwsrc :%s psrc :%s hwdst :%s pdst :%s """ %(res[0].res[0][1].hwtype,res[0].res[0][1].ptype,res[0].res[0][1].hwlen, res[0].res[0][1].plen,res[0].res[0][1].op,res[0].res[0][1].hwsrc, res[0].res[0][1].psrc,res[0].res[0][1].hwdst,res[0].res[0][1].pdst) print string

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpswfz.html