如何从存储在pcap文件中的数据包中获取协议详细信息

时间:2014-11-12 09:20:15

标签: java protocols packet pcap jnetpcap

我想创建一个交换循环(在java中),其情况是存储在pcap文件中的数据包的协议的协议

我正在使用jnetpcap库来访问数据包。

我知道如何从数据包中获取IP地址,端口号等,但我想知道是否有函数直接告诉我数据包的协议即tcp,udp,icmp等等 人们也可以建议他/她是否知道任何其他具有这种功能的图书馆。

提前致谢。

2 个答案:

答案 0 :(得分:0)

存在jpcap库,内置函数可用于提取数据包协议和其他细节。

答案 1 :(得分:0)

我自己找到了答案:

使用JNETPCAP库,
对于TCP / IP堆栈:我们可以根据tcp header的端口号来获取协议

以下链接给出了与不同协议对应的端口号: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

在jnetpap中获取协议:
PcapPacket packet = //从某个地方获取

Tcp tcp = new Tcp();
Ip4 ip = new IP4();

如果(packet.hasHeader(IP)及;&安培; packet.hasHeader(TCP)){
如果(tcp.source()== 80){
System.out.println(“HTTP协议”);
否则if(tcp.source == 23)
System.out.println(“Telnet协议”);

}