2

私は実際にpythonでパケットを盗聴しようとしています(pypcapとdpktを使用)。

私は次のことを試しました:

import dpkt, pcap
pc = pcap.pcap()     # construct pcap object
pc.setfilter('src host X.X.X.X or dst host X.X.X.X')
for timestamp, packet in pc:
    print dpkt.ethernet.Ethernet(packet)

しかし、スクリプトを起動しても何も起こりません...何か見逃しましたか?

OS X Yosemite (10.10) で Python 2.7 を使用する

4

4 に答える 4

1

Scapyをチェックしてください。インタラクティブにも使用できる強力なネットワーキングツールです。Python で書かれているため、スクリプトでも使用できます。

scapy では、次のように簡単です (ただし、フィルターを簡単に追加することもできます)。

sniff(iface='eth0')
于 2014-11-27T02:36:17.367 に答える
0

コードには何も飛び出していないので、ネットワークだけなのか気になります。

IP アドレスを再確認し、トラフィックが表示されることを確認するためのサニティ チェックとして tcpdump を実行できますか?

tcpdump の場合、このようなもの

$ sudo tcpdump -i en1 "src host 10.0.0.2 or dst host 10.0.0.2" 
于 2014-11-27T03:30:31.077 に答える
0

ファイルへのパスを に配置しなかった場合pcap.pcap()、解析する pcap はありません。

私が持っている pcap ディレクトリからの glob を使用してスクリプトを実行し、IP をネットワーク内の IP に置き換えましたが、うまくいったようです。pypcap と dpkt をインストールしましたか?

これがまさに私があなたのスクリプトで行ったことです。

import dpkt, pcap, glob
for i in glob.glob("/pcap/*.pcap"):
    pc = pcap.pcap(i)
    pc.setfilter('src host 192.168.1.140 or dst host 192.168.1.140')
    for timestamp, packet in pc:
        print dpkt.ethernet.Ethernet(packet)

それはたくさんのものを印刷しました。

于 2014-11-27T03:16:02.563 に答える