我想创建一个交换循环(在java中),其情况是存储在pcap文件中的数据包的协议的协议
。我正在使用jnetpcap库来访问数据包。
我知道如何从数据包中获取IP地址,端口号等,但我想知道是否有函数直接告诉我数据包的协议即tcp,udp,icmp等等 人们也可以建议他/她是否知道任何其他具有这种功能的图书馆。
提前致谢。
答案 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协议”);
}