2017-10-20 24 views
1

私は、Java(アンドロイド)のプロジェクトで働いている、主なアイデアはとても以下のように、私はpcap4jライブラリを使用しているユーザのアクセスというURLを取得するために、URLをキャプチャし、危険なページへのアクセスをブロックすることである。pcap4jでドメインをキャプチャするには?

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

私はURL(https://es.wikipedia.org/wiki/Google)にアクセスすれば、ドメイン名を生成します:(wikipedia.org)が本当に必要なのは、リクエストを生成するメインURLです。 URL(https://es.wikipedia.org/wiki/Google)?

答えて

0

私は本当に難しいと思います。

URLを取得するには、HTTPパケットの要求行を確認する必要があります。 しかし、Pcap4JはHTTPをサポートしていないので、HTTPパケットを解析するためのパケットクラスを作成する必要があります。

そして、HTTPはTCP上にあり、通常は上位層のパケットを断片化します。 HTTPパケットを解読する前に、HTTPパケットを再構成する必要があります。

さらに、httpsの場合、HTTPパケットは暗号化され、TLSレイヤーによって断片化されます。この場合、HTTPパケットを再構成して解読してURLを取得する必要があります。 TLSパケットを復号化するには、HTTPサーバーの秘密鍵が必要です。 しかし、キーを持っていても、TiffセッションでDiffie-Hellman鍵交換アルゴリズムが使用されている場合は、パケットを復号化できません。

+0

こんにちは、お返事ありがとう、他のライブラリや技術を使ってHTTPのリクエストラインを確認する方法はありますか? –

+0

いいえ、考えられません。私はAndroidに慣れていない。 – kaitoy

関連する問題