問題タブ [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.

0 投票する
2 に答える
4343 参照

c++ - アクセス ポイントとそれに接続されているホストの MAC アドレスを取得するにはどうすればよいですか?

IEEE 802.11 フレームをキャプチャして MAC アドレスを表示するには、libpcap ライブラリを使用する必要があることを知っています。

pcap_loop のコールバック関数で、パケットから MAC アドレスを抽出するにはどうすればよいですか? 異なるタイプのパケットを区別するにはどうすればよいですか? グーグルで調べても、ほとんどの場合、有線インターフェイスからパケットを抽出する方法についてはあまり答えがありません。

0 投票する
3 に答える
10235 参照

c - libpcapはAF_LINKからMACを取得しますsockaddr_dl(OSX)

私はCを使用してOSX上のすべてのインターフェイスのMACアドレスを取得しようとしています。Linuxを取得する一般的な方法はBSDでは機能しません-私が見たすべてのものから、インターフェイスを取得し、タイプのインターフェイスを探す必要がありますAF_LINK。私の問題は、LLADDR(sockaddr_dl)が大量のデータ(MACを含む)を提供し、データの形式がわからないことです。たとえば、次のコードが出力されます。

デバイス:en1リンクsdl_alen:101 mac:31:f8:1e:df:d6:22:1d:00:00:00:00:00:00:00:00:00:00:00:00:00:00 :00:b0:06:10:00:01:00:00:00:c0:02:10:00:01:00:00:00:00:00:00:00:00:00:00:00 :40:03:10:00:01:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:03:00:6c :6f:30:00:00:00:00:00:00:00:00:00:00:00:00:00:70:03:10:00:01:00:00:00:e0:02 :10:00:01:00:00:

私のMACは太字です。これはいつものフォーマットのようですが、LLADDR(sockaddr_dl)を何かにキャストできればもっと快適になります。net / if_dl.hでは、LLADDRは次のように定義されています。

これは、私が知る限り、結果はタイプ(void *)であると言っています-助けにはなりません。

のような他の投稿:

ioctl / SIOCGIFADDR/SIOCGIFCONFを使用してMacOSXでイーサネットインターフェイス情報を取得する方法を理解するのに問題がありますか?

彼らはそれを理解していると思っているようですが、コードを見ると、sdl_alenが6ではないために機能しないことがわかります。

0 投票する
2 に答える
2958 参照

c++ - スレッド化とpcapの問題

ユーザーがネットワークをスキャンできるようにするGUIプログラムがありますが、問題は、pcap_loop関数が呼び出されると、GUIプログラムが応答しなくなることです(pcap_loopは現在のスレッドをブロックします)。

pthreadを使用しようとすると、pcap_loop関数でSIGSEGVエラーが発生しました。なぜですか?スレッドがprocPacket関数自体を認識できないようです。

0 投票する
1 に答える
710 参照

c++ - libpcapとwinpcapの関数は同じ名前ですか?

libpcapとwinpcapの関数は同じ名前ですか?そうでない場合、どのような名前が異なりますか、またはそれらの大部分は異なりますか?

また、libpcap ++をwinpcapに使用できますか?

0 投票する
3 に答える
1200 参照

c - libpcapを使用したアップロード/ダウンロードレートの測定

ネットワークトラフィックを監視するために、Cアプリケーションでlibpcap(およびWindowsではwinpcap)を使用しています。接続速度の統計を生成するには、各ネットワークアダプターでアップロードトラフィックとダウンロードトラフィックを区別する必要がありますが、ライブラリで使用されるフィルター式はこれを簡単にサポートしていないようです(つまり、「着信」/「発信」演算子はありません) )。

私が検討したアプローチの1つは、各アダプターのIPアドレスを照会してから、 (src host 1.2.3.4アップロードを測定するため)やdst host 1.2.3.4(ダウンロードを測定するため)などのフィルターを使用することです。

私の質問は次のとおりです。

上記のものよりも優れた/単純なアプローチはありますか(各アダプターに同じフィルター式を使用できるようにするものがいいでしょう)?

上記のアプローチが進むべき道である場合、単一のアダプターに複数のIPアドレスが関連付けられている可能性はありますか?私が尋ねる理由pcap_addrは、単一のアダプター(in struct pcap_if)のアドレスの詳細を保持する構造体に「next」メンバーがあり、これが可能であることを示唆しているためです。

0 投票する
1 に答える
1388 参照

perl - Net::Pcap から HTTP パケットを再構築するにはどうすればよいですか?

Net::Pcapモジュールを使用して、このフィルターでパケットをキャプチャしています。

Net::Pcap イベント ループ内で、コールバック関数を使用します。

次のmy_callbackようになります。

HTTP パケットを 1 つのパケットに組み立てて、そのヘッダーを抽出するにはどうすればよいですか?

0 投票する
3 に答える
233 参照

c - C libpcapはDLTエントリ、いくつかの厄介なバグを解決します

自分でスニファーを書いているときに、イーサネットについて話している場合にのみ開始する例を1つ見つけました。他のDLT_typesは無視されています。それらはpcap-bpf.hにあります。欠落しているpcap_resolve_dlt()を実装しようとする行をいくつか書きました。これは本当に厄介なコード(1)で、機能しているようですが、次のように対応する番号にスペースを入れる必要がある厄介なバグに遭遇しました。

たぶん、アプローチ自体は完全に間違っているので、pcap-bpf.hを直接grepする必要があります。

1)http://nopaste.info/4a2470cc83.html、strstr()を使用

敬具、

チャールズ

タグ:C libpcap DLT_

0 投票する
1 に答える
263 参照

perl - この HTTP ヘッダーが出力されないのはなぜですか?

次のコードがあります。

この行が印刷される理由を誰かに説明してもらえますか:

そして、これが印刷されない理由:

ここで何が問題になる可能性がありますか?誰かアドバイスをいただけますか?libpcap のコールバック機構に関連していますか?

0 投票する
3 に答える
6335 参照

c - libpcap 関数のルート権限の要件

root 以外のpcap_lookupdev()ユーザーとして実行された場合は errbuf 変数に入力されますが、root として実行された場合は同じ関数が最初に使用可能なネットワーク インターフェイスの値を返します。

このアクセスは、OS またはライブラリによって無効にされていますか。OSだと思います。正解は?

これは宿題の質問ではありません

0 投票する
1 に答える
10760 参照

networking - pcap_loop と pcap_dispatch の違い

pcap_loop と pcap_dispatch の違いは何ですか?