問題タブ [libpcap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows-xp - CでIPからネットワークアダプタ名を取得するには?
適切なネットワーク アダプター名を渡すことにより、WinPcap を介して Windows でパケットをキャプチャしようとしています。これに関連して知りたいこと: マシンの IP アドレスを渡すだけでネットワーク アダプタ名を取得する簡単な方法はありますか。IPからネットワークアダプター名を取得しようとしています(ワイヤレス、VPN、LANなど、Windowsシステムで利用可能な多くのものからWinPcapを使用してパケットをキャプチャするために適切なインターフェイスを使用していることを確認するため)次のようになります: \Device\NPF_{5D24AE04-C486-4A96-83FB-8B5EC6C7F430} 数値表現だけで十分です。これは、パケットのキャプチャを開始するために WinPcap/Libpcap のメソッド pcap_open() に渡す正確なパラメータです。
WinPcap のサンプル コードは次の場所にあります。
c - コンピュータのポート 23 に着信するパケットをブロックするにはどうすればよいですか?
libpcap ライブラリを使用しています。pcap.h を使用して、1 つのパケット スニファ C プログラムを作成しました。ここで、デバイス経由でコンピューターのポート 23 に着信するパケットをブロックしたいと考えていますeth0
。pcap_filter 関数を試しましたが、ブロッキングには役に立ちません。Cプログラムを使用してこの機能をコーディングする方法を教えてください。
python - scapy と pcapy のヘルプ
私はscapyとpcapyが初めてです。プロジェクトとして、scapy を使用して ICMP パケットを送信し、pcapy を使用してキャプチャする必要があります。ネットワークの遅延を計算するには、送信者と受信者のタイムスタンプを比較する必要があります。
どうすればこれができるのかわかりません。どんな助けでも大歓迎です。
ありがとうございました。
次のコマンドを使用して、タイムスタンプにタイプ 13 を使用した宛先に ICMP パケットを送信していました。
a=IP(dst="172.24.50.76")/ICMP(タイプ=13)
sr1(a) 送信開始: 1パケット送信終了.1パケット受信, 1応答取得, 残り0パケット
ts_ori=22:40:35.556 ts_rx=526:4:13.700 ts_tx=526:4:13.700
1) ts_rx と ts_tx のタイムスタンプは同じ時間を示していますが、どうすれば遅延を計算できますか? 2)2番目に、さまざまなパケットサイズで遅延を計算するために、パケットのサイズを大きくするにはどうすればよいですか。
お分かりいただけたかと思います。
python - libpcap でパケットレートを測定することは可能ですか?
libpcap (pcapy) を使用して特定のパケット (10.1.1.1 から 10.2.2.2 へのパケットなど) をキャプチャする Python スクリプトがあります。そのデータ転送速度を測定することは可能ですか? つまり、パケットのサイズを取得できますが、私が理解しているように、そのパケットの転送にかかった時間はわかりません。パケットレートを測定する別の方法はありますか?
c++ - libpcap を使用したペイロードの解釈
そこで、最近 libpcap をいじっていて、簡単な質問があります。問題のコードは次のとおりです。
したがって、私のテストでは、HTTP「GET」リクエストのみをキャプチャするように設定しました。私の考えでは、出力 A と出力 B の出力は同じで、HTTP ヘッダーのみを出力する必要があります。出力 B は常に正しく出力されますが、出力 A には HTTP ヘッダーと約 7 バイトのランダム テキストが追加されることがあります (この「ï╤↔N↓ƒ♂」のように)。
問題は、その文字化けしたテキストがどこから来たのかということです。出力 A のようにペイロードを直接出力するのと、出力 B のようにループして各文字を出力するのとでは、何が違うのでしょうか?
c - libpcapを使用しないLinuxでのパケットスニッフィング
IPv4、IPv6、TCP、UDP、IP、ICMPなどのパケットをキャプチャして識別し、その内容を表示できるパケットスニファを作成する大学(ネットワークエンジニアリング)のコースのプロジェクトが与えられました。
当初、これを行うためにlibpcapを使用するように指示されましたが、大学の技術者の1人から、現在のインストール(Arch linux)ではlibpcapを使用できないことが通知されました。
libpcapを使用しないCでパケットスニファを作成する他の方法はありますか?
私はこのプロジェクトへの答えを求めているのではなく、方向性を求めているだけです。どこから始めればよいのでしょうか。
packet-capture - libpcap パケット受信関数で定期的にタイムアウトする方法
タイムアウト付きの Pcap を使用してリッスンしているstackoverflow.com でこの投稿を見つけました
私は同様の (しかし異なる) 問題に直面しています: libpcap パケット受信関数を使用してキャプチャされたパケットを受信するときに定期的にタイムアウトする GENERIC (プラットフォームに依存しない) メソッドは何ですか? 実際、pcap_dispatch(pcap_t...) / pcap_next_ex(pcap_t...) から定期的にタイムアウトできるかどうか疑問に思っています。それが可能であれば、従来の select(...timeout) 関数 ( http://linux.die.net/man/2/select ) を使用するのと同じように使用できます。
さらに、公式 Web ページ ( http://www.tcpdump.org/pcap3_man.html ) から、元のタイムアウト メカニズムにはバグがあり、プラットフォーム固有であると見なされていることがわかりました (私のプログラムは別の Linux で実行される可能性があり、これは悪いことです)。 Unix ボックス):
"... ... to_ms は、読み取りタイムアウトをミリ秒単位で指定します。読み取りタイムアウトは、パケットが検出されたときに読み取りが必ずしもすぐに返されるわけではなく、許可されるまである程度の時間待機するように調整するために使用されます。より多くのパケットが到着し、1 回の操作で OS カーネルから複数のパケットを読み取る必要があります.すべてのプラットフォームが読み取りタイムアウトをサポートしているわけではありません.サポートしていないプラットフォームでは、読み取りタイムアウトは無視されます... ...
注: ライブ キャプチャを読み取る場合、読み取りがタイムアウトしたときに pcap_dispatch() が返されるとは限りません。一部のプラットフォームでは読み取りタイムアウトがサポートされておらず、他のプラットフォームでは、少なくとも 1 つのパケットが到着するまでタイマーが開始されません。これは、たとえば対話型アプリケーションで、パケット キャプチャ ループがユーザー入力を定期的に「ポーリング」できるようにするために、読み取りタイムアウトを使用しないことを意味します。 ……」
したがって、以下のように GENERIC (プラットフォームに依存しない) タイムアウト メカニズムを自分で実装する必要があるのではないでしょうか?
- pcap_open_live() で pcap_t 構造体を作成します。
- pcap_setnonblock(pcap_t...) でノンブロッキング モードに設定します。
- 次のように、登録された OS タイマーを使用して、この非ブロッキング pcap_t をポーリングします。
OS timer_x を登録し、timer_x をリセットします。
ながら(1) {
if(timer_x time out) {定期的に実行する必要があることを実行します。timer_x をリセット;}
pcap_dispatch(pcap_t...)/pcap_next_ex(pcap_t...) を呼び出して pcap_t をポーリングし、いくつかのパケットを受信します。
これらのパケットで何かをします。
}//while(1) の終わり
よろしく、
DC
c - C libpcap: ヘッダー/パケットの内容を確認するにはどうすればよいですか?
ポート 80 でデータを分析するために使用する次の C コードがあります。
送信元アドレスと宛先アドレスを取得するためにヘッダー内を調べようとしています。そして、ペイロードを取得するためにパケットの内部を調べようとしています。どうすればこれを行うことができますか?オンラインで API が見つからないようです。
よろしくお願いします。
c - C: "tcp_seq" の前に指定子修飾子リストが必要です
このエラーが発生し続けます: ヘッダー ファイルの 'tcp_seq' の前に指定子修飾子リストが必要です。
ヘッダーファイルは次のとおりです。
グーグルでさえ、私はそれの底に到達することはできません。
誰かがいくつかの提案をしてくれることを願っています。
よろしくお願いします。
c++ - pcap_lookupdev で無線デバイスを検索するには?
これまでのところ、これが私のコードです。
これが私の質問です: pcap_lookupdev にワイヤレス デバイス (つまり wlan0) を検索させるにはどうすればよいですか?