3

Scapy (tcpdump を使用してパケットをキャプチャする) では、送信したデータ パケットと、そこから取得した ICMP 応答からタイムスタンプを抽出しています。

>>> icmpPacket.time
1344448836.482289
>>> dataPacket.time
1344448832.707281
>>> RTT = icmpPacket.time - dataPacket.time
>>> RTT
3.775007963180542

ここの時間の単位は?どうすれば数秒で取得できますか?

4

1 に答える 1

2

時間の単位は、UNIXエポック(1970年1月1日の00:00:00 UTC)からの秒数です。time必要に応じて、またはモジュールを使用してdatetimeこれらを解釈します。後者は上位レベルのモジュールです。

例:

>>> import datetime
>>> icmpstamp = datetime.datetime.fromtimestamp(1344448836.482289)
>>> icmpstamp
datetime.datetime(2012, 8, 8, 20, 0, 36, 482289)
>>> print icmpstamp
2012-08-08 20:00:36.482289
>>> datastamp = datetime.datetime.fromtimestamp(1344448832.707281)
>>> datastamp
datetime.datetime(2012, 8, 8, 20, 0, 32, 707281)
>>> print datastamp
2012-08-08 20:00:32.707281
>>> difference = icmpstamp - datastamp
>>> difference
datetime.timedelta(0, 3, 775008)
>>> print difference
0:00:03.775008

したがってRTT、値はすでに2つのタイムスタンプの秒単位の差になっています。

于 2012-08-08T20:09:33.443 に答える