![]()
# Print out sizes of IP packets
import pcapy, impacket, impacket.ImpactDecoder decoder = impacket.ImpactDecoder.EthDecoder() # packets = pcapy.open_live("eth0", 1500, 0, 100) packets = pcapy.open_offline('/tmp/cap/capture') packets.setfilter('ip') for i in xrange(100): (header, data) = packets.next() eth = decoder.decode(data) ip = eth.child() print ip.get_ip_len() It's brand new. The docs are nearly nonexistent and the library isn't as Pythonic as one would hope. But it works pretty well! Compare also scapy (less libpcap-like). PS: I ran into a problem installing on Debian
ImportError: /usr/lib/python2.3/site-packages/pcapy.so: undefined symbol: __gxx_personality_v0
The workaround was to link the .so with g++ instead of gcc.
This is either a bug in gcc or Python distutils.
|