Próbuję użyć Raspberry Pi, aby znaleźć żądania ARP z określonego urządzenia bezprzewodowego w mojej sieci. To jeden z tych przycisków Amazon. Ktoś użył tego kodu do nasłuchiwania, gdy myślnik łączy się z Wi-Fi.
from scapy.all import *
def arp_display(pkt):
if pkt[ARP].op == 1: #who-has (request)
if pkt[ARP].psrc == '0.0.0.0': # ARP Probe
if pkt[ARP].hwsrc == '74:75:48:5f:99:30': # button 1
print "Pushed Huggies"
elif pkt[ARP].hwsrc == '10:ae:60:00:4d:f3': # button 2
print "Pushed Elements"
else:
print "ARP Probe from unknown device: " + pkt[ARP].hwsrc
print sniff(prn=arp_display, filter="arp", store=0, count=10)
Kiedy uruchamiam to na Raspbian (z zainstalowanym Pythonem i scapy), pojawia się błąd
"IndexError: Layer [ARP] not found"
Zupełnie nie znam się na scapie i po raz pierwszy nurkuję. Dzięki za wszelkie pomysły.
Odpowiedzi:
Ja też robię to samo. Znalazłem, że
tcpdump
nie został zainstalowany.Prosty
sudo apt-get install tcpdump
naprawił dla mnie ten błąd.źródło
Miałem ten sam błąd, ale okazało się, że nie dzieje się to niezawodnie, czasami kończy się niepowodzeniem z:
a czasem działa wiecznie.
Wskazówka: Ustaw
count=0
w linii wąchania wydruku, aby działał wiecznie, liczenie wydaje się być przekroczone.Początkowo zainstalowałem scapy ze strony internetowej, ale ostatecznie wykonałem:
i wydaje się, że działa dobrze, kiedy działa. Nie jestem pewien, czy potrzebowałem wszystkich powyższych, ale scaphon python polecił je (i kilka procedur graficznych) podczas instalacji.
Dodatek: Za każdym razem, gdy majstruję przy kodzie, istnieje prawdopodobieństwo, że będzie on działał bez powodowania awarii, więc dzieje się coś naprawdę dziwnego.
źródło
Mieliśmy ten sam problem i okazało się, że zapomnieliśmy sprawdzić jeden warunek.
Po prostu dodaj ten wiersz przed wszystkimi blokami if:
źródło
na moim Raspy B 2012 zużywa> 50% procesora.
Próbowałem
sniff (filter = "tcp and port 123", prn = print_summary, store = 0)
Przekierowałem żądania przycisku Dash na adres IP komputera, na którym Scapy działa za pośrednictwem mojej zapory ogniowej. Chodziło o to, aby oszczędzać zasoby i nie monitorować całego ruchu dla adresów MAC, ale tylko obserwować żądania połączenia z portem.
To zużywa ~ 30% Cpu. Działa na komputerze Ubuntu, ale na Raspi B uruchomienie zajmuje około 5 minut, a następnie pokazuje Połączenia z całej mojej sieci - czego nie robi na komputerze Ubuntu. Zakładam, że jest zepsuty na obrazie Raspy Musicbox.
źródło