Я пытаюсь извлечь IP-адрес назначения, затем сохранить его в словаре, но я хочу его только один раз
Ввод
from scapy.all import *
pkts = rdpcap('example.pcap')
test = ""
for pkt in pkts:
temp = pkt.sprintf("%IP.dst%",)
test = test + temp
print(test)
В настоящее время мой вывод похож на
??,????,????,????,??0.0.0.0,255.255.255.255192.168.1.1,192.168.1.2380.0.0.0,255.255.255.255192.168.1.1,192.168.1.238192.168.1.1,192.168.1.2380.0.0.0,255.255.255.255192.168.1.1,192.168.1.238??,????,????,????,????,??192.168.1.238,192.168.1.1192.168.1.1,192.168.1.238192.168.1.238,89.30.121.15089.30.121.150,192.168.1.238192.168.1.238,89.30.121.150192.168.1.238,89.30.121.15089.30.121.150,192.168.1.238192.168.1.238,89.30.121.150192.16
Я хочу, чтобы выходные данные выглядели так, и я хочу, чтобы конечный IP-адрес был только без повторов
89.30.121.150
198.50.110.244
89.30.121.14
89.30.121.23
Вместо этого я получаю огромный список IP-адресов. Мне нужен только IP-адрес назначения, но только ОДИН РАЗ (без повторов) не для каждого пакета
Я также пробовал это, но это зависает?
def print_summary(pkt):
if IP in pkt:
ip_dst=pkt[IP].dst
print(ip_dst)
sniff(offline=pkts, filter="ip",prn=print_summary)
Может кто-нибудь придумать более быстрое решение для извлекать IP-адреса из больших файлов PCAP, используя Scapy