python,dpkt和timestamps

时间:2012-10-29 13:39:39

标签: python http timestamp libpcap

我有一个问题。

如何使用dpkt库获取GET和HTTP / 1.0之间的响应时间差200(我的意思是Web服务器的时间延迟)和来自pcap文件的每个主机名的ts?

我的初步代码:

#!/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()

但它仍然只输出GET请求的时间戳。

它看起来像:

tcpdump -i eth0 -w pcapfile; python (command).py pcapfile

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

1 个答案:

答案 0 :(得分:2)

您似乎设法获得了第一个请求数据包,现在您需要获取响应的第一个数据包...类似于:

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