Java 如何在pcap4j中捕获域?

Java 如何在pcap4j中捕获域?,java,android,url,pcap4j,Java,Android,Url,Pcap4j,我在一个Java(Android)项目中工作,其主要思想是捕获URL并阻止对危险页面的访问,以便获得用户访问的URL,我正在使用pcap4j库,如下所示: IpV4Packet ipV4Packet = packet.get (IpV4Packet.class); Inet4Address srcAddr = ipV4Packet.getHeader().GetSrcAddr(); System.out.println(srcAddr); 因此,如果我访问url(),代码将生成域名,类似:(w

我在一个Java(Android)项目中工作,其主要思想是捕获URL并阻止对危险页面的访问,以便获得用户访问的URL,我正在使用
pcap4j
库,如下所示:

IpV4Packet ipV4Packet = packet.get (IpV4Packet.class);
Inet4Address srcAddr = ipV4Packet.getHeader().GetSrcAddr();
System.out.println(srcAddr);

因此,如果我访问url(),代码将生成域名,类似:(wikipedia.org),但我真正需要的是生成请求的主url,我如何获得完整的url()?

我认为这真的很难

为了获得URL,您需要查看HTTP数据包的请求行。 但是Pcap4J现在不支持HTTP,所以您需要编写数据包类来解析HTTP数据包

而且,HTTP是在TCP上的,TCP通常会对上层数据包进行分段。 在解析HTTP数据包之前,需要重新组装它们

而且,如果使用https,HTTP数据包将通过TLS层进行加密和分段。在这种情况下,您需要重新组合和解密HTTP数据包以获得URL。 要解密TLS数据包,您需要HTTP服务器的密钥。
但是,即使您拥有密钥,在TLS会话中使用Diffie-Hellman密钥交换算法时,您也无法解密数据包。

您好,谢谢您的回答,有没有办法使用其他库或技术查看HTTP的请求行?不知道。我不熟悉安卓系统。