mike01 / pypacker

:package: The fastest and simplest packet manipulation lib for Python
GNU General Public License v2.0
252 stars 46 forks source link

Add pcap-ng format support (Reader only and not full support) #8

Closed ainoniwa closed 9 years ago

ainoniwa commented 9 years ago

Add pcap-ng file format.

Refer:

Will work as below:

>>> from pypacker import pcapng
>>> pcr = pcapng.Reader(open("tests/packets_ether2.pcapng", "rb"))
>>> for count, (ts, epb) in enumerate(pcr):
...     print("Packet #{}".format(count))
...     print("  Time:", ts)
...     print("  Interface ID:", epb.interface_id)
...     print("  Capture length:", epb.cap_len)
...     print("  Frame length:", epb.len)
...     epb.data
...
Packet #0
  Time: 1417779509.722652
  Interface ID: 0
  Capture length: 90
  Frame length: 90
b'33\x00\x00\x00\x16x\xe7\xd1r\n\x8c\x86\xdd`\x00\x00\x00\x00$\x00\x01\xfe\x80\x00\x00\x00\x00\x00\x00yo$Kn\n$s\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16:\x00\x05\x02\x00\x00\x01\x00\x8f\x00?\xcf\x00\x00\x00\x01\x04\x00\x00\x00\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x03\x00\x00|\x00\x00\x00'
Packet #1
  Time: 1417779509.722675
  Interface ID: 1
  Capture length: 90
  Frame length: 90
b"33\x00\x00\x00\x16\x08\x00'\x008\xb9\x86\xdd`\x00\x00\x00\x00$\x00\x01\xfe\x80\x00\x00\x00\x00\x00\x00a\xeb\xeb\x9bTJ\xffp\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16:\x00\x05\x02\x00\x00\x01\x00\x8f\x00\xce\xc4\x00\x00\x00\x01\x04\x00\x00\x00\xff\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x03\x00\x00|\x00\x00\x00"
mike01 commented 9 years ago

Thanks, pcapng support was merged to v2.9.1. There will be some uniform interface for all pcap-filereader in the next versions.

ainoniwa commented 9 years ago

Thank you for merging !