2009-08-16 15 views
2

libpcapにパケットを通過させる代わりにパケットを取り除くことは可能ですか?私は各パケットを傍受し、測定データとともに新しいパケットにカプセル化したいが、両方のパケット(鉱山と元)が両方とも宛先に到達する。libpcapでパケットを廃棄する

+0

この質問はlibcap程度であることから、あなたはlibpcapのタグを追加することもできます。 – sivabudh

答えて

1

これを実行できる唯一の方法は、送信側と受信側の間の唯一の物理パスで、インターセプタ上のパケット転送をオフにすることです。

無線トラフィックをキャプチャしている場合は、何もできません。周囲の空気から電波を除去するソフトウェアライブラリはありません。

2

これはできません。ネットワーキングスタックフィルタをパケットから外すために、(オペレーティングシステム用の)ドライバを作成する必要があります。

+0

ネットワークスタックの動作を変更する多くのLinuxカーネルオプションがあります。例えば、 'echo 0>/proc/sys/net/ipv4/ip_forward'は、このホスト宛ではないパケットの転送を止めます。 –

+0

@Ben:そうです。しかし、私はあなたが望むものを実装するためにそのような設定を使用できるのか疑問です。 –

+0

LinuxカーネルのIPTablesは、pcaketsの削除に関する情報を掘り下げるのに適しています –

1

いいえ、libpcapは「パケットを削除できません」。

達成したいことは明確ではありませんが、データを受け取り、追加情報を追加して再公開したいと思うようです。 UDPなどのデータグラムプロトコルで作業している場合は、拡張UDPデータを別のUDPポートに再送信することができます。

0

ベンSに対応して、あなたが空気オフパケットを削除することはできませんが、あなたは彼らの目的地に到達し、それらを停止することができます - ARPキャッシュポイズニングを使用してなど

0

他の人が述べたように、あなたはlibpcapのを使用することはできません。 libpcapはパッシブリスナーです。 Linuxの場合、iptablesに接続するnetfilterを使うことができます。これを行う方法の例がここにあります。

http://www.linuxjournal.com/article/7184

関連する問題