2012-04-27 30 views
3

隨着Scapy,當我創建一個數據包,並將其寫入一個文件pcap,它會將數據包到當前時間的時間戳。在Scapy中的每個數據包上指定時間戳?

這是我目前的使用情況。 1335494712.991895是我創建的數據包的時間:

>>> a = Ether()/IP(src='1.1.1.1',dst='2.2.2.2')/TCP(sport=1337,dport=31337) 
>>> wrpcap('single-tcp-packet.pcap', a) 

# tcpdump -tt -r single-tcp-packet.pcap 
reading from file single-tcp-packet.pcap, link-type EN10MB (Ethernet) 
1335494712.991895 IP 1.1.1.1.menandmice-dns > arennes-651-1-107-2.w2-2.abo.wanadoo.fr.31337: Flags [S], seq 0, win 8192, length 0 

我怎麼可以指定每個包我自己的時間戳?

我看過文檔中提到的時間戳,用於設置TCP時間戳,但它似乎沒有與實際的pcap時間戳有差別。

回答

5

啊!找到了。

簡單:

>>> a.time = 1234567890 
>>> wrpcap('single-tcp-packet.pcap', a) 

# tcpdump -tt -r single-tcp-packet.pcap 
reading from file single-tcp-packet.pcap, link-type EN10MB (Ethernet) 
1234567890.000000 IP 1.1.1.1.menandmice-dns > arennes-651-1-107-2.w2-2.abo.wanadoo.fr.31337: Flags [S], seq 0, win 8192, length 0 
+2

傑拉德,如果你想也許看到那個Scapy的時間戳的人類可讀的版本,我用這個從日期時間後,進口日期時間打印datetime.fromtimestamp(pkt.time).strftime ('%Y-%m- $ d%H:%M:%S')。split('')[1] – dc5553 2012-04-27 08:13:25