can';t使用pythondpkt解析tcpdump捕获
Python dpkt可以解析Wireshark/pcap文件并成功显示数据包数据:can';t使用pythondpkt解析tcpdump捕获,python,wireshark,tcpdump,dpkt,Python,Wireshark,Tcpdump,Dpkt,Python dpkt可以解析Wireshark/pcap文件并成功显示数据包数据: >>> for ts, pkt in pcap: eth = dpkt.ethernet.Ethernet(pkt) type(eth.data) <class 'dpkt.ip.IP'> <class 'dpkt.ip.IP'> 对于pcap中的ts、pkt: eth=dpkt.ethernet.ethernet(pkt) 类型(eth.数据)
>>> for ts, pkt in pcap:
eth = dpkt.ethernet.Ethernet(pkt)
type(eth.data)
<class 'dpkt.ip.IP'>
<class 'dpkt.ip.IP'>
对于pcap中的ts、pkt:
eth=dpkt.ethernet.ethernet(pkt)
类型(eth.数据)
但是当我试图解析tcpdump文件时,我得到了以下结果:
>>> for ts, pkt in pcap:
eth = dpkt.ethernet.Ethernet(pkt)
type(eth.data)
<type 'str'>
<type 'str'>
<type 'str'>
对于pcap中的ts、pkt:
eth=dpkt.ethernet.ethernet(pkt)
类型(eth.数据)
从Python IDE打印中,您可以看到类型(eth.data)是'str',而不是类“dpkt.ip.ip”。有人知道什么是根本原因,以及如何使dpkt为
tcpdump
捕获工作吗?很抱歉您等待了这么久。我希望你能在不到4年的时间里找到答案
首先,我应该提到,网络中有一些数据包,以太网层是其中的最后一层。正因为如此,在深入研究数据包之前,你应该检查一下
例如:
#Check the if there is an ip layer
if ether.type == dpkt.ethernet.ETH_TYPE_IP:
#read the ip layer
ip = ether.data
我不确定这是否是你的问题。如果您使用的是与ip层相同的数据包,那么可以肯定的是,您将经常检查这些数据包。但是,我希望我能帮助一些人
祝你今天愉快
祝你好运。很抱歉你等了这么久。我希望你能在不到4年的时间里找到答案 首先,我应该提到,网络中有一些数据包,以太网层是其中的最后一层。正因为如此,在深入研究数据包之前,你应该检查一下 例如:
#Check the if there is an ip layer
if ether.type == dpkt.ethernet.ETH_TYPE_IP:
#read the ip layer
ip = ether.data
我不确定这是否是你的问题。如果您使用的是与ip层相同的数据包,那么可以肯定的是,您将经常检查这些数据包。但是,我希望我能帮助一些人
祝你今天愉快
祝你好运。你的确切
tcpdump
命令是什么?您正在使用-w
?如果您尝试使用tcpdump读取文件并将tcpdump的标准输出发送到/dev/null,会打印什么?@AlexP。是的,我使用tcpdump,比如tcpdump-I any-w file_name.pcap
尝试将-s 65535
添加到命令行我也有这个问题@你找到解决办法了吗?您是否从库中切换?如果是,是哪一个?您的确切tcpdump
命令是什么?您正在使用-w
?如果您尝试使用tcpdump读取文件并将tcpdump的标准输出发送到/dev/null,会打印什么?@AlexP。是的,我使用tcpdump,比如tcpdump-I any-w file_name.pcap
尝试将-s 65535
添加到命令行我也有这个问题@你找到解决办法了吗?你从图书馆换了吗?如果是,是哪一个?