0

Wifi に接続しているときに、Android アプリでパケットをキャプチャしようとしています。

ブロードキャストレシーバークラスを使用しています。

次のコードを使用して、wifi ネットワークに接続したときにブロードキャストを正常に受信しました。

ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (null != activeNetwork) {
            if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI){
                //wificonnected
                return 1;
            }
}

ネットワーク接続時にパケットをキャプチャしたい。私は wifiInfo と WifiManager クラスについてすべて知っています。

ここでjNetPcapライブラリを試しています。それらのパケットをキャプチャする方法は? 私にはアイデアがありません。

みんな助けてください...

4

1 に答える 1

2

デバイスのすべてのネットワーク トラフィックをアプリ経由でリダイレクトするには、VpnService を使用する必要があります。

jNetPcap を使用する場合は、ここに実際の例を示します(詳細はこちらこちら)。

トラフィックを読み取った後、ここに記載されているように、各宛先ポート/IP に対して 1 つのソケットを開く必要があります。しかし、それは簡単ではありません。最初に VpnService を理解する必要があります。まず、ToyVpn を参照することをお勧めします。

この情報が役立つことを願っています。

于 2014-06-18T18:19:56.167 に答える