私の指示は、Wiresharkプログラムからダンプされたwireshark.binデータファイルを読み込み、パケット時間を抽出することでした。ヘッダーをスキップして初めて見つける方法がわかりません。パケット時間のためのWiresharkダンプファイルを読む
"""
reads the wireshark.bin data file dumped from the wireshark program
"""
from datetime import datetime
import struct
import datetime
#file = r"V:\workspace\Python3_Homework08\src\wireshark.bin"
file = open("wireshark.bin", "rb")
idList = [ ]
with open("wireshark.bin", "rb") as f:
while True:
bytes_read = file.read(struct.calcsize("=l"))
if not bytes_read:
break
else:
if len(bytes_read) > 3:
idList.append(struct.unpack("=l", bytes_read)[0])
o = struct.unpack("=l111", bytes_read)[0]
print(datetime.date.fromtimestamp(o))
ファイル全体を一度に読み込もうとすると、エラーが発生します。トレース(最も最近の最後の呼び出し): ファイル "V:\ workspace \ Python3_Homework08 \ src \ wiretimes.py"、行8、 data = open( "wireshark.bin")read() ファイル "C: (charset 'codecは位置28のバイト0x8dをデコードできません)\ Python \ lib \ encodings \ cp1252.py "、行23、デコード時 return codecs.charmap_decode(input、self.errors、decoding_table)[0] UnicodeDecodeError: :文字マップ –
@Python_Maybe:woops、 'rb' - 編集した答えを忘れました。 –
ありがとう、今私は全体のファイルを読むことができます。パケットの長さをどのように把握するのですか?すべてのパケットが同じサイズであるわけではありません。 –