2

我想制作一个开关循环(在java中),其情况是存储在pcap文件中的数据包的ip头协议。

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

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

提前致谢。

4

2 回答 2

0

我自己找到了答案:

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

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

在 jnetpap 中获取协议:
PcapPacket packet =//从某处获取

Tcp tcp = 新的 Tcp();
Ip4 ip = 新 IP4();

if(packet.hasHeader(ip)&&packet.hasHeader(tcp)){
     if(tcp.source()==80){
         System.out.println("HTTP 协议");
     else if(tcp.source==23)
         System.out.println("Telnet 协议");

}

于 2014-11-24T13:12:02.680 回答
0

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

于 2014-11-12T12:44:13.890 回答