HTTPパケットの決定
-
27-09-2019 - |
質問
挨拶、
パケットがHTTPパケットであるかどうかを使用して、キャプチャされたパケットからSharppcapを使用してどのように判断することができますか?
また、パケットがHTTPであるかどうかの場合、FRPM TCPパケットを決定できますか?
解決
によると RFC2616-ハイパーテキスト転送プロトコル-HTTP/1.1:
HTTPメッセージのバージョンは、メッセージの最初の行のHTTPバージョンフィールドで示されます
したがって、メッセージヘッダーのHTTPバージョンテキスト、および/またはHTTPプロトコルのその他の既知のフィールドのパケットを検査してスキャンできます。この方法は、メッセージが複数のパケットに分割されている場合、100%正確ではない場合がありますが、少なくとも最初のカットとしては、おそらく十分であるでしょう。
他のヒント
私は著者/メンテナーです sharppcap/packet.net
.
実行するクラスがいくつかあります tcp
再組み立てと http
複雑なネットワーク監視アプリで使用されている解析 http sessions
. 。これらは完全にユニットテストされ、よくコメントされています。
バイナリまたはソースレベルでライセンスを取得できます。
編集:なぜこれに投票するのですか?コードとテストの開発には数百時間かかり、再利用されたソリューションの低下です。同じ機能を再実装する前に、検討する価値があります。
単一のTCPフラグメントを見ているように聞こえます。それがメッセージの先頭から来た場合、それは最初の行にHTTPバージョンを持っていますが、あなたがネットワークからランダムなパケットを引っ張って、彼らがあなたが運がないことを伝えることができることを望んでいるなら-TCPフラグメントには、それらの中にあるものを示すものは何もありません。知る唯一の方法は、会話全体を見ることです。