Python讀取 pcap檔案遇到的問題

2021-09-30 21:50:05 字數 562 閱讀 9319

在讀取*.pcap檔案的時候,前面的幾個包解析出來都是正確的,但是讀到某乙個包的時候位元組數就不對了。所以把讀取的位置列印出來看是**不對。

pcap_pkthdr_len=16

print "(1)f.tell()=",f.tell()

pcap_pkthdr=f.read(pcap_pkthdr_len)

(sec,microsec,caplen,pktlen)=struct.unpack("=llll",pcap_pkthdr)

print "(2)f.tell()=",f.tell()

188+16=204而不是205……

這是為什麼呢??

因為python中的read(num)函式中的num指的是字元數,而不是位元組數。

乙個英文本母(英文標點)是1字位元組,乙個中文(中文標點)utf-8編碼的話是用了3個位元組,gbk的話是用了兩個位元組。

要想使得read()讀取的是字元數,就要在開啟檔案的時候用二進位制開啟。即:

f=open("filename","rb")

Python讀取pcap檔案

想試一試讀取pcap檔案的內容,並且分析出pcap檔案頭,每一包資料的pcap頭,每一包的資料內容 暫時不包括資料報的協議解析 關於pcap檔案的格式,可以參看 搞了一下午,寫了乙個py檔案,rdpcap.py,想把裡面的二進位制檔案全部弄成十六進製制的,然後作為字串寫入到乙個txt檔案,轉化成字串...

pcap檔案概述

檔案整體結構示意圖 檔案整體結構描述 magic 4b 0x1a 2b 3c 4d 用來標示檔案的開始 major 2b,0 02 00 當前檔案主要的版本號 minor 2b,0 04 00當前檔案次要的版本號 thiszone 4b當地的標準時間 全零 sigfigs 4b時間戳的精度 全零 s...

pcap檔案解析 pcap檔案頭與包檔案頭(一)

前段時間接到乙個公司關於解析pacp檔案的培訓 我是被培訓的 在完成了一部分的功能後決定把一些關於pcap檔案的了解記錄到部落格中。在開始讀取pcap檔案之前,先讓我們來看看pcap檔案的大概結構。如上圖所示在乙個pcap檔案中存在1個pcap檔案頭和多個資料報,其中每個資料報都有自己的頭和包內容。...