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

问题简述:
利用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. 판단이 빗나가고 정확하지 않을 것 같은 느낌이 듭니다.
계속해서 더 나은 솔루션을 찾고 답변을 기다리겠습니다!

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!