scapy - 使用 scapy.sniff 获取 pcap 文件中的“以太网帧”的问题
问题描述
目的:从 pcap 文件中获取到达时间语言:python3.7 工具:Scapy.sniff
最重要的是,我想在.pcap中获取到达时间数据,当我使用wireshark时,我看到了以太网帧中的数据,但是当我使用#Scapy.sniff(offline='. pcap')时,我得到了以太,TCP,IP 和其他,那么我怎样才能得到这些数据呢?非常感谢!
>>from scapy.all import *
>>a = sniff(offline = '***.pcap')
>>a[0]
[out]:
<Ether dst=*:*:*:*:*:* src=*:*:*:*:*:* type=** |<IP version=4 ihl=5 tos=0x20 len=52 id=14144 flags=DF frag=0 ttl=109 proto=tcp chksum=0x5e3b src=*.*.*.* dst=*.*.*.* |<TCP sport=gcsp dport=http seq=1619409885 ack=1905830025 dataofs=8 reserved=0 flags=A window=65535 chksum=0xfdb5 urgptr=0 options=[('NOP', None), ('NOP', None), ('SAck', (1905831477, 1905831485))] |>>>
[ ]:
解决方案
来自 pcap 的数据包时间在time
成员中可用:
print(a[0].time)
它被保存为浮点值(标准的python“时间戳”格式)。为了以更容易理解的形式获得它,您可能需要使用 datetime 模块:
>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(a[0].time)
>>> print(dt)
2018-11-12 03:03:00.259780
scapy 文档不是很好。使用交互式帮助工具非常有指导意义。例如,在解释器中:
$ python
>>> from scapy.all import *
>>> a = sniff(offline='mypcap.pcap')
>>> help(a[0])
这将向您显示由 . 表示的对象的所有方法和属性a[0]
。在您的情况下,这是class Ether(scapy.packet.Packet)
.
推荐阅读
- java - 服务 onCreate 和 onStartCommand 不运行
- c# - 尝试加密密钥时输入数据不是完整的块
- artifactory - 尝试从 nuget-gallery 访问 nuget 包时出现超时问题
- react-native - react-native run-android 执行失败
- r - 将SPSS中的标签添加为R中的列名
- c# - 从另一个 Combobox 中选择时更改另一个 Combobox Item 列表
- java - 杰克逊:反序列化 XML 在列表中提供了太多元素
- asp.net - 从复选框列表向多个号码发送短信
- javascript - JavaScript 按可空布尔值排序数组,然后是字符串
- installation - 无法在 Windows 10 版本 1903 上安装 Chocolatey