1

PCAP ファイルから ARP パケットのみの日時を抽出し、csv/txt として保存したいと考えています。私は抽出時間のために以下のコードを使用しました。印刷コマンドは時間とともに正常に機能しています。ただし、csv ファイルに保存する場合は、1 つの日付と 1 つの時刻 (例: 14:59:58) のみが csv ファイルに保存されます。pcapからARP時間を抽出してcsvに正しく保存するためのコードを変更することを提案できますか。ありがとうございました。

open("../data/" + filename + ".pcap", 'rb') を f: pcap = dpkt.pcap.Reader(f) として使用

    requests = []
    replies = []

    for ts, buf in pcap:

        eth = dpkt.ethernet.Ethernet(buf)
        # If the packet is not arp

        if eth.type != 2054:
            continue
        try:
            arp = eth.arp
        except Exception as e:
            continue

        src = dpkt.socket.inet_ntoa(arp.spa)
        tgt = dpkt.socket.inet_ntoa(arp.tpa)

        if arp.op == 2:
            count_duplication(replies, src, tgt)

        elif arp.op == 1:
            count_duplication(requests, src, tgt)


        packet_time = datetime.datetime.utcfromtimestamp(ts).strftime("%m/%d/%Y, %H:%M:%S")

        print (packet_time)

  save_packets(sorted(requests, key=lambda x: -x[2]), '../tmp/count-requests-xyz' + '.csv', packet_time)

# Save Packets

def save_packets(packets,filename,tcp,ts, degree_sorted): with open(filename, 'w') as f: パケット内のパケットの場合: data = '' パケット内のアイテムの場合: data = data + str(item) + ' ,' f.write(data + tcp + datetime.datetime.utcfromtimestamp(ts).strftime("%m/%d/%Y, %H:%M:%S") + degree_sorted + '\n')

4

1 に答える 1