windows - java用jpcap怎么识别出http和https的数据包?
巴扎黑
巴扎黑 2017-04-18 10:54:29
0
1
453

问题简述:
利用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);
                  }` 
巴扎黑
巴扎黑

全員に返信(1)
阿神

一時的な解決策:
キャプチャされた TCP パケットのデータ フィールドに「HTTP」文字列が含まれているかどうかを確認します。
欠点:
1. Wireshark と比較した結果、Wireshark のデータ フィールド内の一部の TCP パケットは HTTP を持ち、http ではなく tcp として認識されることがわかりました (Wireshark がそれをどのように解析するかはわかりません)。
2. 判断が外され、正確さが不十分になるように感じます。
より良い解決策を探し続けて、答えを楽しみにしています!

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!