我有个问题。
如何从pcap文件中为每个主机名使用dpkt库和ts来获得get和http/1.0 200 ok(web服务器的平均时间延迟)之间的响应时间差?
我的初步代码:

#!/usr/bin/env python

import dpkt

f = open('mycapture.cap')
pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
    eth = dpkt.ethernet.Ethernet(buf)
    ip = eth.data
    tcp = ip.data

    if tcp.dport == 80 and len(tcp.data) > 0:
        http = dpkt.http.Request(tcp.data)
        print ts, http.headers['host']

f.close()

但仍然是输出时间戳只获取请求。
看起来像是:
tcpdump -i eth0 -w pcapfile; python (command).py pcapfile

google.com 0.488183
facebook.com 0.045466
quora.com 0.032777

最佳答案

似乎你成功地得到了请求的第一个包,现在你需要得到响应的第一个包…类似于:

if tcp.sport == 80 and len(tcp.data) > 0:
     # Here you can save the timestamp of the response and calculate the difference

祝你好运

关于python - python,dpkt和时间戳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13122758/

10-10 16:58