Bagaimana saya bisa membuat Raspberry Pi saya terus memindai alamat MAC di jaringan saya kemudian melakukan tugas ketika mendeteksi alamat MAC tertentu?
Saya menggunakan Pi saya untuk menjalankan berbagai tugas otomasi rumah. Saya ingin melakukan tugas ketika merasakan bahwa ponsel saya terhubung ke Wi-Fi, (artinya saya baru saja pulang). Apa cara terbaik untuk melakukan pemindaian Pi untuk Alamat MAC ponsel saya secara terus menerus? Saya tahu saya dapat menggunakannya arp-scan
untuk memindai Alamat MAC, tetapi saya perlu ini untuk terus memindai. Saya yakin ada metode yang lebih baik kemudian arp-scan
dijalankan dalam satu lingkaran, atau menggunakan cron untuk menjalankannya setiap menit.
wifi
home-automation
Gsears
sumber
sumber
Jawaban:
Telepon rumah
Ponsel saya bertindak berbeda, karena semua ponsel memiliki beberapa perbedaan. Respons ping hanya terjadi jika ponsel terjaga. Jika Pi di-boot ulang dan telepon dalam mode tidur, banyak ping akan menempatkan alamat ip dan mac-nya di tabel arp, dengan paket loss 100%. Saya baru tahu bahwa
arp
perintahnya sudah usang,ip neighbor
digunakan sekarang.Setelah pengujian, solusi saya adalah memiliki dua loop di dalam loop selamanya. loop dalam pertama adalah melakukan ping pada berbagai alamat ip, beberapa kali, yang mungkin untuk ponsel saya. Router saya telah mencadangkan 19 alamat ip pertama dan saya mungkin memiliki sekitar setengah lusin alamat yang akan ditetapkan DHCP, termasuk telepon saya, mulai dari alamat 192.168.0.20. Saya akan ping selusin alamat ip sekali, dalam mode latar belakang, tunggu satu detik untuk respon, dan membuang hasilnya sebagai sampah. Saya akan menunggu delapan detik di tabel arp, dan menjalankan
ip neighbor
perintah, ambil alamat mac untuk alamat ip. Router dan telepon akan menyimpan alamat ip yang sama ini kecuali terjadi sesuatu yang tidak biasa. Tabel arp akan tetap di Pi, tetapi akan berubah negara dariREACHABLE
,STALE
, danFAILED
dari ping dan waktu.Loop kedua di dalam akan melakukan ping dan memeriksa tabel arp setiap lima menit untuk menentukan apakah ponsel di rumah. Dengan tiga ping 'GAGAL' berturut-turut, telepon tidak di rumah. Satu 'REACHABLE', ketika telepon tidak di rumah, akan membuat telepon kembali ke rumah (melakukan sesuatu). Ada pemeriksaan untuk memvalidasi alamat ip dan kembali ke loop dalam pertama jika diperlukan koreksi.
sumber
Mengapa tidak menambahkan reservasi ke alamat ip ponsel Anda dan lakukan saja ping melalui tugas cron setiap beberapa menit.
Saya melakukan ini pada rpi saya menggunakan fhem , ia memiliki modul deteksi kehadiran yang memungkinkan saya mengatur status penduduk yang dapat diminta untuk mempengaruhi tugas otomatisasi rumah.
sumber