Rumah  >  Soal Jawab  >  teks badan

windows - java用jpcap怎么识别出http和https的数据包?

问题简述:
利用java的第三方库jpcap写抓包程序,求解怎么识别出http和https的数据包(就只要能判断出是http协议或https协议即可)。

测试的解法:
1.在tcp包(jpcap自带TCPPacket类比较方便识别tcp包)的基础上用80端口和443端口区分http和https,但是连tcp都识别成http或https了(不成功)。
2.设法找出http或https特有而tcp没有的字段,未能找出。

代码示意(未完成):
` else if(packet instanceof jpcap.packet.ICMPPacket) {

                  packetprocol = "ICMP";
                  r.addElement(packetprocol);
              }
              else if(packet instanceof jpcap.packet.TCPPacket) {
                  TCPPacket tcppacket = (TCPPacket)packet;
                  //if((tcppacket.src_port==80||tcppacket.dst_port==80)&&tcppacket.) {
                      packetprocol = "HTTP";
                      r.addElement(packetprocol);
                  }else if(tcppacket.src_port==443||tcppacket.dst_port==443) {
                      packetprocol = "HTTPS";
                      r.addElement(packetprocol);
                  }
                  else {
                      packetprocol = "TCP";
                      r.addElement(packetprocol);
                  }` 
巴扎黑巴扎黑2764 hari yang lalu455

membalas semua(1)saya akan balas

  • 阿神

    阿神2017-04-18 10:56:29

    Penyelesaian sementara:
    Tentukan sama ada medan data paket tcp yang ditangkap mengandungi rentetan "HTTP".
    Kelemahan:
    1 Selepas membandingkan dengan wireshark, kami mendapati bahawa beberapa paket tcp dalam medan data wireshark mempunyai HTTP dan diiktiraf sebagai tcp dan bukannya http (saya tidak tahu cara wireshark menghuraikannya).
    2. Rasanya penghakiman akan terlepas dan tidak cukup tepat.
    Teruskan mencari penyelesaian yang lebih baik dan menantikan jawapan!

    balas
    0
  • Batalbalas