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.