使用python中的dpkt包解码数据包字段

时间:2015-02-14 18:54:21

标签: python decode ntp dpkt

我正在尝试使用dpkt打印NTP字段。它运行良好,除了我无法得到像我从tcpdump得到的输出。例如,在附加的代码中,我无法以人类可读的格式打印originate_time。我在binascii中尝试过函数,但无法正确完成。

我是dpkt的新手,任何指针都会很棒。

import dpkt
import socket

def processPcap(iFile):
    f = open(iFile)
    pcap = dpkt.pcap.Reader(f)

    for ts, buf in pcap:
        eth = dpkt.ethernet.Ethernet(buf)
        ip = eth.data
        source = socket.inet_ntoa(ip.src)
        destination = socket.inet_ntoa(ip.dst)
        udp = ip.data
        if ip.p==dpkt.ip.IP_PROTO_UDP:
            if udp.dport == 123:
                ntp = dpkt.ntp.NTP(udp.data)
                print (("Timestamp:%s, Source:%s, Destination:%s, SPort:%s, DPort:%s") % (ts, source, destination, udp.sport, udp.dport))
                print ntp.flags
                print ntp.delay
                print ntp.id
                print ntp.dispersion
                print ntp.update_time
                print ntp.originate_time

    f.close()

if __name__ == "__main__":
    INPUT = "<inputFile>"
    processPcap(INPUT)

0 个答案:

没有答案