我想制作一个切换循环(在java中),其情况是存储在pcap文件中的数据包的ip头的协议。
我正在使用jnetpcap库来访问数据包。
我知道如何从数据包中获取ip地址、端口号等,但我想知道是否有一个函数可以直接告诉我数据包的协议,即tcp、udp、icmp等。还可以建议他/她是否知道任何其他具有这种功能的库。
提前谢谢。
存在jpcap库,内置函数可用于提取数据包的协议和其他详细信息。
我自己找到了答案:
使用JNETPCAP库,
对于TCP/IP堆栈:我们可以根据TCP标头的端口号来获取协议
以下链接提供了与不同协议相对应的端口号:http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
在jnetpap中获取协议:
PcapPacket数据包=//从某处获取
Tcp-Tcp=新Tcp()
Ip4 ip=新Ip4()
如果(packet.hasHeader(ip)&;packet.hasHeader(tcp)){
nbsp nbsp;if(tcp.source()==80){
nbsp nbsp nbsp nbsp;System.out.println("HTTP协议")
nbsp nbsp;否则if(tcp.source==23)
nbsp nbsp nbsp nbsp;System.out.println("Telnet协议")
}