BlankTar

about | blog | works | photo

PyPyCap

pycapのpure python版。
pure pythonになったおかげでwinpcapにも対応、macにも多分対応、linuxも勿論対応の素敵なライブラリ。
ただし速度はがくんと落ちている、と、思われます。

pycap同様パケットのペイロード解析を主体としているので、細かいデータは見れません。
というか、ほんとにpythonに移植しただけなのでほとんど変更がありません。
使い方はpycapのページを御覧ください。

使用するにはlibpcapかwinpcapがインストールされている必要があります。

[ 拍手 ] [ tweet ] [ いいね! ] [ +1 ] [ B! ]

変更点

pycapから変更のあった点など。

新メソッドを追加

FormatPacket(packet, hex=True, ascii=True)

受け取ったパケットを整形して、テキストで返します。
hexがTrueなら16進数、asciiがTrueならascii表記。
両方Trueならhex、asciiの順に両方つなげます。

LookupDev()

libpcapのpcap_lookupdevを使ってデバイス名を返却します。
私のwindows環境だと"\"ってだけ返してきたりしたので、案外信用ならない、のかも。

FindAllDevs()

使用可能なデバイスの一覧をリストで返します。
名前とかIPアドレスとかネットマスクとかも付いてくる。

GetVersion()

libpcapのバージョンを返します。
pcap_lib_versionの返却値そのままで、結構フリーダムな書式。

クラス名の変更

PycapからPyPyCapに変更。
タイプしづらい? 知らんな。

対応プロトコルの追加

arpとrarpも識別可能に。
といっても'protocol'要素に'arp'とか'rarp'とか入るだけで、詳細なデータは見れません。

非対応のプロトコルでも何かしら返すように変更

unknown packetとか言ってraiseしてたpycapと違って、ハードウェアアドレスとプロトコル番号だけでも返すように変更。
'protocol'要素の中身がint型になるので注意。

openをopenLiveに変更

といっても今までどおりopenも使える。

リリースノート

バージョン1

公開
これまたバージョンアップはない気がする。

ダウンロード