scapy构造打印ARP数据包

释放双眼,带上耳机,听听看~!

本文目录

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=\'64:6E:69:03:63:32\',#本机MAC
    dst=\'FF:FF:FF:FF:FF:FF\'#广播发送
)/ARP(
    op=1,#发送arp请求
    hwsrc=\'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

 

   返回的结果是元组(代码中的res),res[0]表示收到的数据包,res[1]表示没有收到应答的数据包

  结果截图:scapy构造打印ARP数据包

 

 

  

给TA打赏
共{{data.count}}人
人已打赏
随笔日记

C#规范整理·泛型委托事件

2020-11-9 5:26:47

随笔日记

《Fluid Engine Development》 学习笔记3-光滑粒子流体动力学

2020-11-9 5:26:49

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索