Я пытаюсь использовать Raspberry Pi для поиска ARP-запросов от определенного беспроводного устройства в моей сети. Это одна из тех кнопок Амазонки. Кто-то использовал этот код для прослушивания, когда прибор подключается к 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)
Когда я запускаю это на Raspbian (с установленными python и scapy), я получаю сообщение об ошибке
"IndexError: Layer [ARP] not found"
Я совершенно незнаком со Scapy и просто ныряю в первый раз. Спасибо за любые идеи.
Ответы:
Я тоже делаю то же самое. Я обнаружил, что
tcpdump
он не был установлен.Простой
sudo apt-get install tcpdump
исправил эту ошибку для меня.источник
У меня была та же ошибка, но я обнаружил, что она не происходит надежно, иногда она сразу же завершается с помощью:
и иногда это работает вечно.
Подсказка: установите
count=0
в строке анализатора печати, чтобы она работала вечно, счетчик выглядит как тайм-аут.Я изначально установил scapy с сайта, но в итоге сделал:
и, кажется, работает нормально, когда работает. Не уверен, что мне нужно все вышеперечисленное, но python-scapy рекомендовал их (и несколько графических процедур), когда я его установил.
Дополнения: Каждый раз, когда я играю с кодом, вероятность того, что он будет работать без сбоев, меняется, так что происходит что-то действительно странное.
источник
У нас была такая же проблема, и оказалось, что мы забыли проверить одно условие.
Просто добавьте эту строку перед всеми блоками if:
источник
на моем Raspy B 2012 он съедает> 50% процессора.
Что я пробовал
снифф (filter = "tcp and port 123", prn = print_summary, store = 0)
Я перенаправил запросы Dash-button на IP-адрес компьютера, на котором Scapy работает через мой Firewall. Идея заключалась в том, чтобы сохранить ресурсы и не отслеживать весь трафик для адресов Mac, а только наблюдать за запросами на подключение к порту.
Это потребляет ~ 30% ЦП. Он работает на машине с Ubuntu, но на Raspi B требуется около 5 минут, чтобы начать работать, а затем показывает Соединения со всей моей сети - чего нет на машине с Ubuntu. Я предполагаю, что это сломано на Raspy Musicbox образе.
источник