Saya mencoba menggunakan Raspberry Pi untuk menemukan permintaan ARP dari perangkat nirkabel tertentu di jaringan saya. Itu salah satu tombol dash Amazon. Seseorang menggunakan kode ini untuk mendengarkan ketika dasbor terhubung ke wifi.
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)
Ketika saya menjalankan ini pada Raspbian (dengan python dan scapy diinstal), saya mendapatkan kesalahan
"IndexError: Layer [ARP] not found"
Saya benar-benar tidak terbiasa dengan scapy dan hanya menyelam untuk pertama kalinya. Terima kasih atas ide Anda.
Jawaban:
Saya juga melakukan hal yang sama. Apa yang saya temukan adalah yang
tcpdump
tidak diinstal.Sederhana
sudo apt-get install tcpdump
memperbaiki kesalahan ini untuk saya.sumber
Saya memiliki kesalahan yang sama, tetapi ternyata itu tidak terjadi dengan andal, terkadang gagal dengan:
dan terkadang berjalan selamanya.
Petunjuk: Atur
count=0
pada baris sniff cetak untuk menjalankannya selamanya, hitungannya tampaknya akan habis.Saya awalnya menginstal scapy dari situs web, tetapi akhirnya melakukan:
dan tampaknya berjalan dengan baik ketika dijalankan. Tidak yakin saya membutuhkan semua hal di atas, tetapi python-scapy merekomendasikan mereka (dan banyak rutinitas grafik) ketika saya menginstalnya.
Tambahan: Setiap kali saya mengutak-atik kode kemungkinan itu akan berjalan tanpa menabrak perubahan, jadi ada sesuatu yang sangat aneh terjadi.
sumber
Kami memiliki masalah yang sama di sini, dan ternyata kami lupa memeriksa satu syarat.
Cukup tambahkan baris ini sebelum semua blok if:
sumber
pada Raspy B 2012 saya memakan> 50% dari CPU.
Apa yang saya coba adalah
sniff (filter = "tcp dan port 123", prn = print_summary, store = 0)
Saya mengalihkan permintaan tombol-Dash ke IP mesin tempat Scapy berjalan melalui Firewall saya. Idenya adalah untuk menyimpan sumber daya dan tidak untuk memantau semua lalu lintas untuk alamat mac tetapi hanya untuk menonton permintaan koneksi ke port.
Ini mengkonsumsi ~ 30% CPU. Ini bekerja pada mesin Ubuntu, tetapi pada Raspi B dibutuhkan sekitar 5 menit untuk mulai bekerja dan kemudian menunjukkan Koneksi dari seluruh jaringan saya - apa yang tidak pada mesin Ubuntu. Saya menganggap itu rusak pada gambar Raspy Musicbox.
sumber