Geowifi is a tool to Search WiFi geolocation data by BSSID and SSID on different public databases.

Databases

  • Wigle
  • Apple
  • OpenWifi
  • Milnikov

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.

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”
}
}
}