0

挨拶、

パケットが http パケットであるかどうかを、sharppcap を使用してキャプチャされたパケットから判断するにはどうすればよいですか?

また、パケットが HTTP であるかどうかにかかわらず、frpm TCP パケットを判別できますか?

4

3 に答える 3

3

rfc2616 - Hypertext Transfer Protocol -- HTTP/1.1によると:

HTTP メッセージのバージョンは、メッセージの最初の行にある HTTP-Version フィールドによって示されます。

したがって、パケットを検査し、メッセージ ヘッダーの HTTP バージョン テキストや、HTTP プロトコルのその他の既知のフィールドをスキャンできます。メッセージが複数のパケットに分割されている場合、この方法は 100% 正確ではないかもしれませんが、少なくとも最初のカットとしてはおそらく十分です。

于 2010-04-16T02:57:17.743 に答える
2

私は の作者/メンテナーですsharppcap/packet.net

tcp複雑なネットワーク監視アプリで使用されている再構築とhttp解析を実行するいくつかのクラスがあり、http sessions. これらは完全に単体テストされ、十分にコメントされています。

これらは、バイナリ レベルまたはソース レベルでライセンスを取得できます。

編集:なぜこれを投票するのですか?コードとテストの開発には何百時間もかかりましたが、それは再利用されたドロップイン ソリューションです。同じ機能を再実装する前に、検討する価値があります。

于 2010-04-16T16:13:38.913 に答える
1

単一の TCP フラグメントを見ているようです。それがメッセージの最初から来た場合は、最初の行に HTTP バージョンがありますが、ネットワークからランダムなパケットを引き出して、それらが HTTP であることを伝えたいと思っているだけなら、運が悪いでしょう。 - TCP フラグメントには、その内容を示すものは何もありません。知る唯一の方法は、会話全体を見ることです。

于 2010-04-16T05:46:58.683 に答える