問題タブ [sharppcap]
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.
networking - 断片化されたデータグラムの再構築を担当するネットワーク層は?
最近、私はネットワーク プロトコルと OSI モデルの問題をもう少し深く掘り下げました。気付いたとき、着信 TCP データグラム (これが間違った用語である場合は訂正してください) は、特定のサイズを超えると、いくつかの部分に分割されます。おそらくルーターのMTUです。この情報をどこから入手したか疑問に思っている場合は、探している情報を抽出するために、SharpPcap を使用してこれらのデータグラムをキャプチャしました。
とにかく、断片化されたパケットの再構成が IP 層のタスクであってはならないのではないかと考えていました。IP 層は、これを達成するための情報 (ID、断片化フラグ、断片オフセット) を確実に提供するからです。さらに、TCPレイヤーはストリームベースのプロトコルとして解釈されることを読みました。しかし、これは実際には、アプリケーションのバッファを正しい方法で埋めるのは TCP 層次第であることを意味します。これにより、情報の最初の部分が再構築され、それ以降のすべての層で「フラッシュ」される可能性があります。
この観察を行う前に、実際には、TCP レイヤーはこれらのデータグラムの再構築を気にする必要があると考えていましたが、言及されたレイヤーはどれも気にしません...
これは、次の質問につながります: 受信した TCP データグラムが再構築されないのはなぜですか? また、実際にこれを処理する必要があるのはどのレイヤーですか?
c# - ICaptureDevice を WinPcapDevice としてキャストする方法
私はSharpPcap チュートリアルを見ていて、この投稿からデバイスの詳細にアクセスする方法を理解しようとしています: SharpPCap デバイスの IP アドレスを見つけるにはどうすればよいですか? ICaptureDevice
は、オブジェクトを などの特定の型にキャストする必要があることを示しますWinPcapDevice
。
これらは、デバイス リストを反復処理する方法を示していますが、型キャストを行う方法は示していません。
c# - LibPcapLiveDevice の IP アドレスを取得する
SharpPcap プロジェクトは Mono と互換性があると主張しているため、プロジェクトを Mac で実行することにしました。
このために、WinPcapDevice
aを作成しLibPcapLiveDevice
、 を にマップするWinPcap.dll
必要がありましたlibpcap.dylib
。
SharpPcap.dll.config:
コード:
問題は、プロパティdevice.Addresses
が空で、IP アドレスを含む他のプロパティが見つからないことです。実際には、デバイス名とその MAC アドレスを除いて、ほとんどすべてのプロパティが空です。これが SharpPcap または Libpcap によって引き起こされた問題であるかどうかはわかりません。
編集
PcapUnmanagedStructures.cs
Guy Harris が示唆したように、Apple OS Reference Docs で使用されている構造体と型を比較しました。OSの仕様と一致するように、それらを適応させようとしました:
ipAddress
はまだ空な
ので、正しくやったかどうかはわかりません。
編集2
ガイ・ハリスは、その長さのフィールドについて正しかった. これは私にとって今うまくいくものです:
一部のフィールドの名前のプレフィックスも からsa
に変更したことに注意してくださいsin
。pad
の名前も に変更しましたsin_zero
。結局のところ、非常に簡単です。
ubuntu - Sharppcap ubuntuでルートを使用してパケットを送信する方法は?
Sharppcap を使用して、マルチキャスト udp パケットをユニキャストに変換し、パケットを別のネットワークに転送しています。次のシナリオのような 2 つのネットワーク間にトンネル IPsec 接続を確立しました IPsec-tools と racoon は正常に動作します
しかし、gateway1 では、eth1 をリッスンしてネットワーク A からすべてのマルチキャスト udp パケットをキャプチャし、宛先アドレスをゲートウェイ 2 の eth1 アドレスに変更して再送信し、他のゲートウェイがパケットをマルチキャストに変更して転送する、sharppcap を使用する簡単なプログラムを実行します。ネットワーク B. IPsec トンネル モードがマルチキャストで機能しないため、これを行いました。たとえば、gatway1 では次のようになります。
変更されたパケットは他のネットワークの宛先に到達しますが、ゲートウェイ 1 とゲートウェイ 2 の間のトンネルではまだ暗号化されていません。解決策は、オペレーティング システムにパケットの送信を処理させることだと思いますが、sharppcap を使用してそれを行う方法がわかりません。
asp.net - ローカルホスト要求パケットが Sharppcap によって認識されない?
mvc 4 を使用して asp.net プログラムを実行しました。iis サーバーに localhost としてデプロイしました。HTTP パケットを追跡したいので、SharpPcap を使用しました。
これが完全なコードです...
Google、stackoverflow、facebook などのリモート サーバーの http パケットをキャプチャするこのコードは、私のシステムと通信します。
ただし、システムをローカルホストとしてのみ使用してパケットを追跡したい。
使用して
誰でも助けることができますか?お願いします...
c# - パケットが sharPcap で TCP CLOSE パケットであることを理解する方法
クライアントからサーバーに送信されるパケットを読み取ろうとしています。C#でsharpPcapを使用しています。このイベントでパケットが TCP CLOSE パケットであることをどのように理解できますか: