> cat /dev/github | grep security-tools
discovered 30 Mar 2026

geowifi

Python โ˜… 1217 via github-topic
โ†’ View on GitHub

AI Summary: geowifi is a tool designed for querying WiFi geolocation data based on the BSSID or SSID from various public databases. Its primary use case is to facilitate the retrieval of network location information, providing output in either map or JSON format. Notable features include support for multiple APIs like Wigle, Google Geolocation, and Combain, enabling users to easily configure and access comprehensive WiFi data.


README

๐Ÿ“ก๐Ÿ’˜๐ŸŒŽ | geowifi

Search WiFi geolocation data by BSSID and SSID on different public databases.

geowifi

๐Ÿ’พ Databases

WigleAppleGoogleMilnikov
WifiDBCombainFreifunk CarteโŒ (Discontinued) OpenWifi

โœ”๏ธPrerequisites


๐Ÿ”‘ APIs and configuration file

The tool has a configuration file in the gw_utils folder called config.yaml. Each of the configuration parameters and how to obtain the necessary information is explained below:

  • wigle_auth:

In order to use the Wigle service it is necessary to obtain an API and configure the gw_utils/config.yaml file replacing the value of the “wigle_auth” parameter for the “Encoded for use” data provided by Wigle.

  • google_api:

In order to use the Google Geolocation Services it is necessary to obtain an API and configure the gw_utils/config.yaml file replacing the value of the “google_api” parameter for the “API” provided. Google provides $200 of free monthly usage.

  • combain_api:

In order to use the Combain API it is necessary to obtain an API and configure the gw_utils/config.yaml file replacing the value of the “combain_api” parameter for the “API” provided. Combain provides a free trial and paid plans.

  • no-ssl-verify:

Option to enable or disable the SSL verification process on requests.


๐Ÿ› ๏ธ Installation

Start by cloning locally the GitHub repo then enter into the geowifi folder. git must be present on your system

git clone https://github.com/GONZOsint/geowifi
cd ./geowifi/

Alternative is to use https://github.com/GONZOsint/geowifi/archive/refs/heads/main.zip then unzip the downloaded file.

Use local Python

Note: Use the package manager pip to install requirements.

virtualenv geowifi
source geowifi/bin/activate
python3 -m pip install -r requirements.txt

Docker

docker build -t geowifi:latest .

๐Ÿ”Ž Usage

usage: geowifi.py [-h] [-s {bssid,ssid}] [-o {map,json}] identifier

Search for information about a network with a specific BSSID or SSID.

positional arguments:
  identifier            The BSSID or SSID of the network to search for.

options:
  -h, --help            show this help message and exit
  -s {bssid,ssid}, --search-by {bssid,ssid}
                        Specifies whether to search by BSSID or SSID (default: bssid)
  -o {map,json}, --output-format {map,json}
                        Specifies the output format for the search results (default: map)
  • Search by BSSID:
python3 geowifi.py -s bssid <input>
  • Search by SSID:
python3 geowifi.py -s ssid <input>

It is possible to export the results in json format using the -o json parameter and show the locations on html map using -o map.

๐Ÿณ Docker usage

docker run --rm geowifi:latest
  • Search by BSSID:
docker run --rm geowifi:latest -s bssid <input>
  • Search by SSID:
docker run --rm geowifi:latest -s ssid <input>

๐Ÿ—บ๏ธ Map output example

Map output

๐Ÿ’พ Json output example

[
  {
    "module": "google", 
    "bssid": "C8:XX:XX:XX:5E:45", 
    "latitude": 33.571844, 
    "longitude": -1XX.XXXXX97
  }, 
  {
    "module": "combain", 
    "error": "Not enough witooth"}, 
  {
    "module": "mylnikov", 
    "error": "Object was not found"
  },
  {
    "module": "vendor_check", 
    "vendor": "Cisco-Linksys, LLC"}, 
  {
    "module": "apple", 
    "bssid": "C8:XX:XX:XX:5E:45", 
    "latitude": 33.57198715, 
    "longitude": -1XX.XXXXX12}, 
  {
    "module": "wigle", 
    "bssid": "C8:XX:XX:XX:5E:45", 
    "ssid": "Vertigo", 
    "latitude": 33.60998154, 
    "longitude": -1XX.XXXXX22}, 
  {
    "module": "wifidb", 
    "bssid": "C8:XX:XX:XX:5E:45", 
    "ssid": "Vertigo", 
    "latitude": 33.6109, 
    "longitude": -1XX.XXXXX533
  }
]

๐Ÿ“ข 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.