Help us understand the problem. What is going on with this article?

WindowsとPython3でのパケットキャプチャ

More than 3 years have passed since last update.

Windows環境でパケットキャプチャするための環境について。
(Anacondaで)Python3系をインストールしていることは大前提です。そこから追加でインストールするものについて以下に示します。
私の環境は次の通りです。
・Win10 64bits
・Anaconda 3.5 conda update --all実行済み。

インストールするもの

WinPcap https://www.winpcap.org/

Wiresharkと一緒にインストールすれば楽。どうせWiresharkも使いますよね?登氏のWin10Pcapでもよいかも。http://www.win10pcap.org/ja/

winpcapy https://github.com/orweis/winpcapy

ちょっとかわいい感じの名前。pip install winpcapyでOK。なぜか、自分の環境ではうまくそのままでは動作しなかったので、__init__.pyfrom winpcapy import WinPcap, WinPcapDevices, WinPcapUtilsを、from . import winpcapyに書き換えました。ここらへん、なにがどうなっているのか、importの仕様を理解していないのでよくわかっていません。

とりあえず、とにかく、パケットキャプチャをWindowsでやろうとしたときに、Python3系だと、Winpcapyがよさそう。それ以外もいろいろ挑戦しましたがサンプルまで動いたのは、私の場合は、winpcapyだけでした。

importのところを変えているので、winpcapy.winpcapy.WinPcapDevicesみたいな感じになりますが、とりあえず動きます。

例を動かす前に

まずは、

>>> from winpcapy import WinPcapDevices
# Return a list of all the devices detected on the machine
>>> WinPcapDevices.list_devices()

でデバイス名を確認するとよいと思います。そうしないと、Ethernet、とか入れても例のプログラムが名前が違っていて、動かなかったりしますので。

scapy

winpcapyでキャプチャはできたのですが、解析しようとしたときに、どうやっていいのかわからなくなったので、高機能そうなscapyを入れることにしました。scapyの本家?は、Python2系にしか対応していないので、Python3に対応するように書き換えられた
scapy-python3 https://github.com/phaethon/scapy/
を利用します。

ただし、Win8以上では、__init__.pyget_windows_if_list()をちょっと書き換えないと動きません。これにハマりました。疲れた。scapyの概要は
ここ http://www.slideshare.net/takahoyo/scapy-53353876
を参照ください。

とりあえずは、以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした