• Stars
    star
    182
  • Rank 211,154 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 6 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

📡 🔔 监听附近网络 Wi-Fi 设备,通过邮件和微信进行消息推送

hmpa-pi

在树莓派上,利用 Wireshark 扫描附近网络 WiFi 设备,并对扫描结果通过邮件或者微信进行推送。

临近春节回老家过年,家里没人,又不想安装摄像头监控,参考 howmanypeoplearearound 写了一个监测脚本,当有手机或其它 Wi-Fi 设备在附近时,通过邮件或者微信提醒。

特性

  • Wi-Fi 设备扫描
  • 邮件提醒
  • 微信提醒(Server 酱)
  • 陌生设备检测

原理

在 Wi-Fi 网络中,无线网卡是以广播模式发射信号的。当无线网卡将信息广播出去后,所有的设备都可以接收到该信息。将无线网卡设置为监听模式后,就可以捕获到该网卡接收范围的所有数据包。 通过这些数据包,就可以扫描出附近 Wi-Fi 的网络内的设备与信号强度。

监听模式的网卡

一些支持监听模式的网卡

wifi-adapter-that-supports-monitor-mode

软件安装

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

配置网卡

  • 如果是支持监听模式的网卡,可以直接运行

  • 如果刚好在使用 rtl8188 usb Wi-Fi 网卡 + 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

消息推送

运行结果

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 ...

TODO

  • 美化打印信息
  • 更优雅的参数配置
  • 当发现新设备时提醒
  • 绘图统计
  • 设备距离估计

参考链接

License

  • MIT
  • 仅供学习和研究,切勿非法使用

More Repositories

1

wechat_jump_game

微信《跳一跳》Python 辅助
Python
13,835
star
2

Douyin-Bot

😍 Python 抖音机器人,论如何在抖音上找到漂亮小姐姐?
Python
8,747
star
3

RL-Stock

📈 如何用深度强化学习自动炒股
Jupyter Notebook
2,645
star
4

tracking-my-phone

🕵️‍♀️ 监视我的手机:数据都去哪儿了?
Jupyter Notebook
501
star
5

hammerspoon-config

🔨🥄 Laziness constitute the primary productive force.
Lua
456
star
6

romantic_page

👫 程序员的表白
HTML
398
star
7

python-vad

🔈 Use python to achieve voice activity detection, this little program may be helpful for voice application
Python
159
star
8

dotfile

🌹 🏘 🌱 My terminal looks like a garden.
TeX
95
star
9

Alfred-Gitlab-Tool

🦊 Time saving: Alfred Gitlab workflow tool.
Python
64
star
10

who_is_following

👀 谁在看着你呢,大兄弟
Python
61
star
11

cerebro-torrent

🔞 Cerebro plugin to search torrent of movies
JavaScript
43
star
12

python-image-process

Python
30
star
13

sci-hub-torrents

Sci-Hub repository torrents backup of scientific papers.
Python
27
star
14

beehive

🐝 一群不辞劳苦采花小蜜蜂
Python
24
star
15

jiandan

python 爬虫 煎蛋 妹子
HTML
21
star
16

bilibili-history

Python
17
star
17

OpenAI-Note

OpenAI Gym 学习笔记
Jupyter Notebook
14
star
18

caiyingwen_facebook

12
star
19

Camera-Streamer-Py

🎦 Cross-platform video streaming service based on Opencv and Flask.
Python
10
star
20

face-concat

Face concat tool
Python
9
star
21

Alfred-Github-Trending

Alfred github trending workflow in Python.
Python
9
star
22

markdown-img-backup

backup my blog images in markdown files
Python
7
star
23

wangshub.github.io

Website
HTML
6
star
24

Alfred-Taobao-Search

在 Alfred 中快速搜索淘宝商品
5
star
25

you-are-the-apple-of-my-eye

🍎 Just for fun.
Python
5
star
26

Alfred-HackerNews

🗞 A workable Hacker News alfred workflow by Python.
Python
4
star
27

Alfred-IP-Geo-Workflow

Python
4
star
28

PowerShell

PowerShell
4
star
29

Arduino-car

C++
3
star
30

meizitu_crawler

Python
3
star
31

FileGo

A simple tool for file and picture uploading.
JavaScript
2
star
32

Alfred-gitlab-due

Python
2
star
33

Cplusplus

C++ demo
C++
2
star
34

spacemacs_bak

✨ Spacemacs configs backup to prevent accidents
Emacs Lisp
2
star
35

image-hosting

Image hosting for markdown doc images.
2
star
36

.atom

My Atom editor config
C
1
star
37

spacemacs-config

my spacemacs config
Emacs Lisp
1
star
38

file_repo

C++
1
star
39

daily-collection

1
star