3

特定の Web サイトがアドレス指定されたときに応答するまでにかかる時間を監視する必要があります。ポート 80 のトラフィックをスニッフィングしたいのですが、対象のサイトとの間でトラフィックが交換されている場合に限られます。私はSOを検索しました.pcapyまたはscapyが仕事に適したツールのようですが、必要以上に深いようです. 私は次のスクリプトを勉強しています:

Python の pcapy を使用したネットワーク トラフィック モニター

そして、私は変更する必要があると思います

def __handle_packet(self, header, data):
    # method is called for each packet by dispatch call (pcapy)
    self._dispatch_bytes_sum += header.getlen() #header.getlen() #len(data)
    logger.debug("header: (len:{0}, caplen:{1}, ts:{2}), d:{3}".format(header.getlen(), header.getcaplen(), header.getts(), len(data)))
    #self.dumper.dump(header, data)

どういうわけか、ターゲットサイト宛てのパケットのみをアンパック/処理します。これは LAN 上の Windows XP マシン用であり、ブラウザがトラフィックを開始することが重要であることに注意してください。

任意のポインタをいただければ幸いです?

4

1 に答える 1

3

scapy の問題は、 TCP ストリームの再構築を処理しないことです。探している HTTP は、TCP ストリームに埋め込まれている可能性があります。ドキュメントを引用するには:

Scapy は、刺激/反応モデルに基づいています。このモデルは、TCP スタックではうまく機能しません。一方、TCP ストリームは、刺激/応答ベースのメッセージを交換するためのチューブとして使用されることがよくあります。

あなたが言ったように、scapyは下層のものにとってより理想的です。たとえば、おそらく DHCP 要求で IP パケットを追跡できます。多くのネットワーク ツールと同様に、TCP の複雑さとストリームベースの性質により、一度その層を越えると、すべてを再構築し、すべての再送信に対処し、エッジ ケース以外を処理し、一貫してデータを引き出すことが難しくなります。

curl や urllib などを使用して、応答が返ってくるまでの時間を確認できますか?

于 2012-08-17T16:26:24.203 に答える