Java 使用jnetpcap库提取数据包详细信息

Java 使用jnetpcap库提取数据包详细信息,java,pcap,jnetpcap,Java,Pcap,Jnetpcap,如何使用jnetpcap库从脱机pcap文件中提取协议字段、源ip和目标ip?对于TCP/ip堆栈:我们可以根据TCP头的端口号获取协议 以下链接中给出了与不同协议对应的端口号: 正在jnetpap库()中获取协议: 感谢您提供指向服务名称/端口图的链接。 PcapPacket packet = //get from somewhere Tcp tcp = new Tcp(); Ip4 ip = new IP4(); byte[] sIP = new byte[4]; byte[] dIP =

如何使用jnetpcap库从脱机pcap文件中提取协议字段、源ip和目标ip?

对于TCP/ip堆栈:我们可以根据TCP头的端口号获取协议

以下链接中给出了与不同协议对应的端口号:

正在jnetpap库()中获取协议:


感谢您提供指向服务名称/端口图的链接。
PcapPacket packet = //get from somewhere
Tcp tcp = new Tcp();
Ip4 ip = new IP4();
byte[] sIP = new byte[4];
byte[] dIP = new byte[4];
String sourceIP = "";
String destIP = "";

if(packet.hasHeader(ip) && packet.hasHeader(tcp)){
   sIP = packet.getHeader(ip).source();
   sourceIP = org.jnetpcap.packet.format.FormatUtils.ip(sIP);
   dIP = packet.getHeader(ip).destination();
   destIP = org.jnetpcap.packet.format.FormatUtils.ip(dIP);

   System.out.println("*" + sourceIP + "*" + destIP);
   System.out.println("Source IP" + sourceIP);
   System.out.println("Destination IP" + destIP);

   if(tcp.source() == 80){
      System.out.println("HTTP protocol");
   } else if(tcp.source == 23) {
      System.out.println("Telnet protocol");
   }
}