0

JPCap ライブラリを使用してネットワーク スニファを実装しようとしています。

問題は、他のノードの UDP パケットのみをキャプチャしていることです。TCP パケットがキャプチャされていません。(実際には、私のコンピューターの TCP パケットのみが傍受されています)

これは私が使用しているコードです:

captor=JpcapCaptor.openDevice(interfaceList[interfaceNumber], 65535, true, 20);
captor.setFilter("ip and tcp",true);


JpcapWriter writer=JpcapWriter.openDumpFile(captor,"pass.txt");

for(int i=0;i<10;i++){
      //capture a single packet
      Packet packet=captor.getPacket();
      //save it into the opened file
      writer.writePacket(packet);

    }
writer.close();
4

1 に答える 1

0

他のノードからの UDP パケットは、ブロードキャスト MAC アドレス (ff:ff:ff:ff:ff:ff) に送信されていますか? その場合、問題は UDP パケットはキャプチャできるが TCP パケットはキャプチャできないことではなく、他のホストからの非ブロードキャスト パケットをキャプチャできないことです (UDP パケットはブロードキャスト パケットである可能性がありますが、ほとんどはそうではありません。 TCP パケットは決してブロードキャスト パケットではありません)。

openDeviceメソッドの 3 番目の引数は、jpcap.JpcapCaptorプロミスキャス モードを設定するかどうかを指定していると思います。これは、他のホストから他のホストに送信された非ブロードキャスト パケットをキャプチャするために必要です。

もしそうなら、問題はあなたが交換ネットワーク上にいる可能性があります。スイッチド イーサネット ネットワークで「サードパーティ」のトラフィックをキャプチャするために必要なことの詳細については、Wireshark Wiki の CaptureSetup/Ethernet ページを参照してください。

于 2012-08-31T03:20:58.123 に答える