首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于使用dpkt解析时使用mergecap生成的pcap导致tcpdump报头无效

由于使用dpkt解析时使用mergecap生成的pcap导致tcpdump报头无效
EN

Stack Overflow用户
提问于 2016-06-10 09:36:23
回答 1查看 1.9K关注 0票数 1

ValueError:下面代码的无效tcpdump标头错误。

代码语言:javascript
运行
复制
import dpkt

f = open('a.pcap')
pcap = dpkt.pcap.Reader(f)

for (src, sport, dst, dport, data) in udp_iterator(pc):

        if dport == 53:
            dns = dpkt.dns.DNS(data)
            if dns.opcode != dpkt.dns.DNS_QUERY:
                print "A DNS packet was sent to the nameserver, but the opcode was %d instead of DNS_QUERY (this is a software error)" % dns.opcode
            if dns.qr != dpkt.dns.DNS_Q:
                print "A DNS packet was sent to the name server, but dns.qr is not 0 and should be.  It is %d" % dns.qr
          print "DNS Query was: ", dns.qd[0].name
            print "ID is: ", dns.id
            print "Hello Dns query is ", dns.qr
            print  "Hello Query Type is ", dns.qd[0].type , type_table[dns.qd[0].type]
            print "Hello DNS Query was: ", dns.qd

我们会非常感谢你的帮助。pcap是使用mergecap生成的,然后使用dpkt进行解析,但错误如下:

代码语言:javascript
运行
复制
File "/usr/local/lib/python2.7/dist-packages/dpkt/pcap.py",
    in __init__
    raise ValueError('invalid tcpdump header')
ValueError: invalid tcpdump header
EN

回答 1

Stack Overflow用户

发布于 2016-06-27 12:42:05

使用"capinfos a.pcap“验证文件类型,并查看第二行。

如果第一个文件以pcapng格式保存,mergecap将使用此格式作为输出文件。

根据该男子档案:

“设置输出捕获文件的文件格式。Mergecap可以用多种格式写入文件;mergecap -F提供可用输出格式的列表。默认是使用第一个输入文件的文件格式。”

为了解决这个问题,您可以使用-F pcap。看起来会是这样的:

代码语言:javascript
运行
复制
mergecap first.pcap second.pcap -w output.pcap -F pcap
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37744858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档