在 pypcapfile 中从 TCP Header 获取 ByteArray

Getting ByteArray from TCP Header in pypcapfile

我想单独解析 TCP 数据包而不使用 PCAPLib 自己的数据结构。因此,我需要获取 TCP header.

的字节数组
from pcapfile import savefile

capfile = open('delta_capture.pcap')
sf = savefile.load_savefile(capfile)

for packet in sf.packets:
    print packet.timestamp
    print packet.packet
    print packet.header # Returns a library object, I need the bytearray instead, as I want to use my own data structure and parse.

capfile.close()

我尝试调试和检查 object 结构,但看不到任何 object 存储 TCP header 中的实际字节。

变量 "packet" 的调试器结果的屏幕截图:

甚至可以在这个库中这样做吗?

无法直接访问 header 的 bytearray。解析header中的各个字段,得到整个数据包:

for packet in sf.packets:
    print(packet.timestamp)
    print(packet.packet)

    # show header fields
    print(packet.header.contents.magic)          # file magic number
    print(packet.header.contents.major)          # major version number
    print(packet.header.contents.minor)          # minor version number
    print(packet.header.contents.tz_off)         # timezone offset
    print(packet.header.contents.ts_acc)         # timestamp accuracy
    print(packet.header.contents.snaplen)        # snapshot length
    print(packet.header.contents.ll_type)        # link layer header type
    print(packet.header.contents.byteorder)      # byte order specifier
    print(packet.header.contents.ns_resolution)  # nanosecond resolution

    # show entire packet
    print(packet.raw())