2012-10-29 30 views
3

我遇到问题。python,dpkt和时间戳

我怎样才能获得GET和HTTP/1.0 200 OK(我的意思是Web服务器的时间延迟)之间的响应时间差用dpkt库和TS的从PCAP文件中每个主机名?

我的初步代码:

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

回答

2

看来你设法请求的第一个包,现在你需要获得响应的第一个包......是这样的:

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

好运