问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python scapy 能拿到请求与响应体吗

发布网友 发布时间:2022-04-24 07:26

我来回答

1个回答

热心网友 时间:2022-04-18 23:52

最近一直在使用做流量分析,今天把 scapy 部分做一个总结。 python 的 scapy 库可以方便的抓包与解析包,无奈资料很少,官方例子有限,大神博客很少提及, 经过一番尝试后,总结以下几点用法以便大家以后使用。

python scapy 抓包与解析

转载请注明来自:b0t0w1’blog 
## 安装

作为初学者,关心的首先是如何安装,本人电脑系统是 fedora, 建议使用 linux。 推荐下载 pip,直接:(当然得在 su 权限下)

pip install scapy1

在 terminal 中输入 scapy, 如果有下面形式即安装好了:

抓包

from scapy.all import *
dpkt  = sniff(iface = "wlp7s0", count = 100)12

sniff() 是 scapy 内置函数,有很多参数, 如图:

这里就不一一解释, iface 参数是网卡信息, 也就是 eth0 之类的, 我这里是 wlp7s0, count 参数是抓取的连接数量, 这里是 100, 还有 filter 参数是过滤等。

pcap 格式保存

wrpcap("demo.pcap", dpkt)1

pcap 格式较为通用, 可以将上述抓取的包保存为 pcap,dpkt 是上面抓取的流量变量。

数据包解析

可以看到有 94 个 tcp 包, 4个 udp 包, 还有两个其他类型的包。类似于 python 中的 list 类型, 可以使用下标访问, 比如用 python 可写个 for 循环遍历每个连接。长度可以使用 len 计算 

注意这里 dpkt 不是 list 类型, 也不是 string 类型, 因此如果要进行字符串处理,要把它转换为 string 类型,

scapy强大地方在于可以通过字段来查看每一个字段信息,首先我们看一下它有那些字段:

可以使用 ls() 查看支持的协议类型,有很多,具体看几个:

甚至还有硬件信息:

还有很多, 可以自己去看一下, 不附图了。知道它有那些字段后, 就可以调用了,随便举个例子, 比如第四个连接 dpkt[3]

它的结构非常清楚,首先是 Ether 层, 然后是 IP 层, 然后是 TCP 层,访问时就按张如图就可以访问各个字段信息。

要注意的是, 不是所有连接都是这几个层, Ether 是都有的, 但是 udp 连接肯定就没有 TCP 层, 而是改为 udp 层, ARP 包肯定就没有 IP 层, 更没有 TCP 层,如果再 arp 连接使用 dpkt[i][IP] 就会报错, 因为它没有 IP 这一层。python 使用时可以时使用 ether 的 type 判断是不是 IP 包, 使用 ip 的 proto 判断时 tcp 还是 udp。

访问包中的报文可以使用 dpkt[i][Raw].load 字段, (假设第 i +1 个包有报文信息),同样,如果没有报文信息, 就没有 Raw 这一层,也就没有 load 这一字段。比如这里:

第六个连接并没有 Raw 数据,访问出错, 第七个有 Raw 数据,可以得到报文信息。

使用离线数据包

pcap = sniff(offline = "xx/xx.pcap")`1

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 python 解析数据包用哪个库好 主要解析http的数据包 Linux,有一个python的tgz压缩包,怎么安装 python2.7 怎么进行抓包和解包 python,scapy,rdpcap模块缺失问题 python 如何获取当前网速 想用python获取当前网速 各位大神帮帮忙 怎 ... 小米智能手表插入手机卡但显示无效卡,该怎么处理? python语言怎么获取电脑上行下载的网速 在linux下,python怎么才能抓到网卡上的所有TCP数据包 如何利用libpcap和Python嗅探数据包 求教python程序调用scapy模块的问题 哪里可以下载到支持python2.7的pcapy呢?望山下载的都是支持python2.5的。跪求支持python2.7的pcapy。 请问python的pcap和dpkt两个模块你是怎么安装的,我安装不上。 求助python pcap模块问题 python2.7 能安装libpcap(抓包)库吗? python pcap 导入之后第一行程序就有问题!急求解决办法!! oppo r9怎么用双屏模式? 小米平板5pro为什么没有主题壁纸 手机投影,投在车玻璃上的字是重影,怎么才能不重影 新增CarPlay+错误修复 苹果iOS7.1体验 手机壁纸带姓名怎么设计? 8001全部冠号 谢谢 关于牧场物语 风之集市结婚的问题 美国肯尼绍州立大学怎么样,好不好 英语口语中的缩写 我想学习自学电气知识,谁有电气符号,以及电气自学方面的知识。越全... 英语过去式与原型对照表 求故宫德语详细介绍! 公安局里面的二级警司是什么职务一般? 算公务员吗? 弱弱地问:二级警司是什么级别 2司在警察中是什么意思? C语言,我想给main函数传三个参数,做个简单的加减乘除计数器 比如我传递14 + 28 公安局里面的二级警司是什么职务, 算公务员吗? .lmu 是什么格式的图片 怎么推导E=2πfL,E代表感抗,f代表频率,L代表自感系数,求指教。 特警二级警司,是什么意思?是公务员级别码? 么e名t的引exse格思帮里c看e号的h忙单表l看的字意式什里公是 公安有警员和警司之分,警司是什么级别呢? excel 循环语句 求AutoCAD 2007激活码 序列号/编组 ID: 000-00000000 申请号: JJ27 PTV0 FAFL E453 9FDG D97J 二级警司是什么职位,,,什么待遇,,,