1
Scapyで構築されたDNSパケットスニッファを使用して、パケットデータを格納します。scapyパケットデータの保存方法は?
私は、パケットデータが辞書として格納されていることを理解しています。これは別の辞書または配列に格納するのが理想的です。私はpkt [0] .summaryを使ってデータが正しいことを知ることができ、パケットを取得していますが、正しく格納する方法がわかりません。
私はPython/Scapyに慣れていないので、私の質問は、このパケットデータを辞書や配列に格納する方法です。
これは、コードは次のようになります。
#!/usr/bin/env python
from scapy.all import *
from datetime import datetime
import time
import datetime
import sys
# Select interface and ports of interest
interface = 'ens33'
bpf = 'udp and port 53'
# SELECT/FILTER MSGS
def select_DNS(pkt):
pkt_time = pkt.sprintf('%sent.time%')
# SELECT/FILTER DNS MSGS
try:
dict = []
# queries
if DNSQR in pkt and pkt.dport == 53:
domain = pkt.getlayer(DNS).qd.qname.decode() # .decode() gets rid of the b''
print('Q - Time: ' + pkt_time + ' , source IP: ' + pkt[IP].src + ' , domain: ' + domain)
# responses
elif DNSRR in pkt and pkt.sport == 53:
domain = pkt.getlayer(DNS).qd.qname.decode()
print('R - Time: ' + pkt_time + ' , source IP: ' + pkt[IP].src + ' , domain: ' + domain)
except:
pass
# START SNIFFER
sniff(iface=interface, filter=bpf, store=0, prn=select_DNS)
ありがとう、完璧に働いています! – arcade16