Search WiFi geolocation data by BSSID and SSID on different public databases.
Databases:
Prerequisites
- Python3.
- In order to display emojis on Windows, it is recommended to install the new Windows terminal.
In order to use the Wigle service it is necessary to obtain an API and configure the
utils/API.yaml
file replacing the value of the “wigle_auth” parameter for the “Encoded for use” data provided by Wigle. This is necessary for searching by SSID.
Installation
Use the package manager pip to install requirements.
python3 -m pip install -r requirements.txt
Usage
usage: geowifi.py [-h] (-s SSID | -b BSSID) [-j] [-m]
optional arguments:
-h, --help Show this help message and exit
-s SSID, --ssid SSID Search by SSID
-b BSSID, --bssid BSSID Search by BSSID
-j, --json Json output
-m, --map Map output
- Search by BSSID:
python3 geowifi.py -b BSSID
- Search by SSID:
python3 geowifi.py -s SSID
It is possible to export the results in json format using the -j
parameter and show the locations on html map using -m
.
Map output example
Json output example
{ “data”:{ “bssid”:“A0:XX:XX:XX:6F:90”, “vendor”:“TP-LINK TECHNOLOGIES CO.,LTD.”, “mac_type”:“MA-L”, “wigle”:{ “lat”:00.000908922099, “lon”:00.000945220028 }, “apple”:{ “lat”:“not_found”, “lon”:“not_found” }, “openwifi”:{ “lat”:00.000808900099, “lon”:00.000845500028 }, “milnikov”:{ “lat”:“not_found”, “lon”:“not_found” } } }
Mentions
- This project uses some of the research and code used at iSniff-GPS.
- Thanks to Micah Hoffman for his attention and answers to my questions.
- Thanks to kennbro for lending me his scrupulous eyes to give me feedback.