因此,我使用tcpdump將我的UDP數據包捕獲到文件中。我現在有我的數據包我的pcap文件。現在我需要:將Java pcap解析器放入ByteBuffer
一個Java程序打開這個文件,解析它並將數據包內容逐個放入一個ByteBuffer中,這樣我的協議解析器就可以處理每個數據包,因爲它是從網絡獲取數據包的。我的協議解析器不必關心它是由網絡閱讀器還是由pcap處理器調用。
在Java中有沒有一個庫或標準的方式來做到這一點?你可以給我或指出我的一些源代碼示例嗎?謝謝!
因此,我使用tcpdump將我的UDP數據包捕獲到文件中。我現在有我的數據包我的pcap文件。現在我需要:將Java pcap解析器放入ByteBuffer
一個Java程序打開這個文件,解析它並將數據包內容逐個放入一個ByteBuffer中,這樣我的協議解析器就可以處理每個數據包,因爲它是從網絡獲取數據包的。我的協議解析器不必關心它是由網絡閱讀器還是由pcap處理器調用。
在Java中有沒有一個庫或標準的方式來做到這一點?你可以給我或指出我的一些源代碼示例嗎?謝謝!
使用jpcap,這正是你需要的。
你知道jpcap是否在maven中央資源庫中?我四處搜尋,但沒有找到它。 – chrisapotek 2012-07-09 14:51:03
它假設在那裏,試試這裏:http://kindsoft.cn/maven2/jpcap/jpcap/ – shem 2012-07-09 15:22:17
我看起來像jpcap只適用於32位的Linux。 :( – chrisapotek 2012-07-09 17:12:08
從文件中讀取,並把它變成一個字節緩衝區,您可以使用
FileChannel in = new FileInputStream(filename).getChannel();
// read into a ByteBuffer from a file.
in.read(byteBuffer);
哇?但那將是原始pcap文件。我們不需要解析它不知怎的,所以ByteBuffer的結果會和現在的udp網絡讀取器一樣嗎? – chrisapotek 2012-07-09 14:50:29
是的,我相信jpcap可以幫助你,我不熟悉tcpdump生成的格式。 Wireshark with是理解tcpdump文件的好工具(而不是試圖編寫這樣的工具) – 2012-07-09 14:56:58
是您的「協議分析器」使用某種標準接口的?還是你發明的東西? – 2012-07-09 14:26:56
@JoeriHendrickx它只是一個簡單的ByteBuffer解析器,它需要一些協議(即udp內容)。 – chrisapotek 2012-07-09 14:51:50