6
不使用libpcap我想寫一個遵循pcap文件格式(format)的日誌文件。這個文件需要被WireShark讀取。到目前爲止,我已經用C++寫的是:如何編寫PCAP捕獲文件頭?
struct pcapFileHeader {
uint32_t magic_number; /* magic number */
uint16_t version_major; /* major version number */
uint16_t version_minor; /* minor version number */
int16_t thiszone; /* GMT to local correction */
uint32_t sigfigs; /* accuracy of timestamps */
uint32_t snaplen; /* max length of captured packets, in octets */
uint32_t network; /* data link type */
};
ofstream fileout;
fileout.open("file.pcap", ios::trunc);
pcapFileHeader fileHeader;
fileHeader.magic_number = 0xa1b2c3d4;
fileHeader.version_major = 2;
fileHeader.version_minor = 4;
fileHeader.thiszone = 0;
fileHeader.sigfigs = 0;
fileHeader.snaplen = 65535; //(2^16)
fileHeader.network = 1; //Ethernet
fileout << fileHeader.magic_number <<
fileHeader.version_major <<
fileHeader.version_minor <<
fileHeader.thiszone <<
fileHeader.sigfigs <<
fileHeader.snaplen <<
fileHeader.network;
fileout.close();
所以這應該做一個空白捕獲文件,但是當我在Wireshark中打開它,我與打招呼:
文件「你好.pcap「似乎在數據包或其他數據的中間被縮短了。
我試着在二進制模式下打開輸出文件,但沒有幫助。我會在WireShark論壇發佈這個,但我認爲這是用戶錯誤,WireShark沒有問題。
幫助將不勝感激。
而且,如果操作系統在一個重要的系統上,使用'ios :: binary'打開文件。 – nos 2011-03-08 21:37:12
@nos - 好點,謝謝。 – aaz 2011-03-08 22:26:38