2

jnetpcap ライブラリを使用して、オフラインの pcap ファイルからプロトコル フィールド、ソース IP、宛先 IP を抽出する方法は?

4

1 に答える 1

5

TCP/IP スタックの場合: TCP ヘッダーのポート番号に基づいてプロトコルを取得できます。

さまざまなプロトコルに対応するポート番号は、次のリンクに記載されています: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

jnetpap ライブラリ ( http://jnetpcap.com ) でプロトコルを取得:

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");
   }
}
于 2014-11-24T13:17:43.750 に答える