用 Python 指令碼,監聽附近網路 Wi-Fi 裝置,通過郵件和微信進行訊息推送
程式碼地址 github.com/wangshub/hm…
在樹莓派上,利用 Wireshark 掃描附近網路 WiFi 裝置,並對掃描結果通過郵件或者微信進行推送。
臨近春節回老家過年,家裡沒人,又不想安裝攝像頭監控,參考 howmanypeoplearearound 寫了一個監測指令碼,當有手機或其它 Wi-Fi 裝置在附近時,通過郵件或者微信提醒。

特性
- Wi-Fi 裝置掃描
- 郵件提醒
- 微信提醒(Server 醬)
- 陌生裝置檢測
原理
在 Wi-Fi 網路中,無線網絡卡是以廣播模式發射訊號的。當無線網絡卡將資訊廣播出去後,所有的裝置都可以接收到該資訊。將無線網絡卡設定為監聽模式後,就可以捕獲到該網絡卡接收範圍的所有資料包。 通過這些資料包,就可以掃描出附近 Wi-Fi 的網路內的裝置與訊號強度。

監聽模式的網絡卡
一些支援監聽模式的網絡卡
wifi-adapter-that-supports-monitor-mode
- USB Rt3070 $14
- Panda PAU5 $14
- Panda PAU6 $15
- Panda PAU9 $36
- Alfa AWUSO36NH $33
- Alfa AWUS036NHA $40
- Alfa AWUS036NEH $40
- Sabrent NT-WGHU $15 (b/g) only
軟體安裝
Mac
brew install wireshark brew cask install wireshark-chmodbpf 複製程式碼
Linux 或 Raspberry Pi
sudo apt-get install tshark # run as non-root sudo dpkg-reconfigure wireshark-common(select YES) sudo usermod -a -G wireshark ${USER:-root} newgrp wireshark 複製程式碼
配置網絡卡
- 如果是支援監聽模式的網絡卡,可以直接執行
- 如果剛好是 Rtl8192 + Raspberry Pi,需要先解除安裝rtl8192驅動,再載入RTL8188驅動
#!/usr/bin/env bash uname -a # disable rtl8192 driver sudo depmod 4.14.79-v7+ sudo rmmod 8192cu sudo modprobe rtl8192cu # set RTL8188 monitor mode sudo ifconfig wlan1 down sudo iwconfig wlan1 mode monitor sudo ifconfig wlan1 up 複製程式碼
執行程式碼
下載程式碼
git clone https://github.com/wangshub/hmpa-pi.git cd hmpa-pi/ && pip install -r requirements.txt 複製程式碼
編輯配置檔案
cp config/config.py.example config/config.py vi config/config.py 複製程式碼
參考配置
adapter = 'wlan1' use_email = True email = {"host": "smtp.163.com", "port": 465, "user": "[email protected]", "password": "xxxxxxxxxx", "to_user": "[email protected]"} use_wechat = True serverchan = {"sckey": "xxxxxxxxxxxxxxxxxxxxx"} known_devices = {"94:65:2d:xx:xx:xx": "my cellPhone", "dc:a4:ca:xx:xx:xx": "my Mac", "b8:27:eb:xx:xx:xx": "my raspberry"} 複製程式碼
執行
python main.py 複製程式碼
訊息推送
- Server 醬微信推送,需要 Github 登入獲取
sckey
- yagmail 郵箱推送
執行結果
2019-01-24 07:37:01.211617 一共發現了 67 臺裝置 Known Devices: - my cellPhone - my raspberry - my mac All Devices: - 00:e0:70:3e:xx:xx 14 DH TECHNOLOGY - 94:65:2d:91:xx:xx 14 OnePlus Technology (Shenzhen) Co., Ltd - dc:d9:16:7e:xx:xx -12 HUAWEI TECHNOLOGIES CO.,LTD - b8:27:eb:12:xx:xx -20 Raspberry Pi Foundation - 98:01:a7:eb:xx:xx -40 Apple, Inc. - 20:5d:47:44:xx:xx -44 vivo Mobile Communication Co., Ltd. - ac:b5:7d:5f:xx:xx -46 Liteon Technology Corporation - 04:03:d6:1f:xx:xx -47 Nintendo Co.,Ltd - d4:ee:07:55:xx:xx -48 HIWIFI Co., Ltd. - 44:6e:e5:63:xx:xx -51 HUAWEI TECHNOLOGIES CO.,LTD - 14:75:90:8d:xx:xx -51 TP-LINK TECHNOLOGIES CO.,LTD. - 34:96:72:1d:xx:xx -56 TP-LINK TECHNOLOGIES CO.,LTD. - d8:cb:8a:74:xx:xx -57 Micro-Star INTL CO., LTD. - 40:8d:5c:21:xx:xx -57 GIGA-BYTE TECHNOLOGY CO.,LTD. - 6c:59:40:25:xx:xx -58 SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD. More ... 複製程式碼