Skip to content

A root repository containing only a README.md that links to other repositories and explains how they are related.

Notifications You must be signed in to change notification settings

marianpekar/wifi-map-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 

Repository files navigation

Introduction

Since GitHub currently does not support any form of groups, folders, buckets, or whatever you might call a feature for organizing repositories, this file serves as a central point for three repositories I recently created.

These repositories are closely related because, together, they form a system for:

  • Scanning Wi-Fi networks and capturing BSSID, SSID, capabilities, and especially signal strength at geolocations using an Android phone.
  • Parsing the output JSON file from the Android app, calculating approximate access point locations, and pushing this data into a database.
  • Presenting this data on a map within a web application.

Wi-Fi Cartophrapher

๐Ÿ“‚ https://github.com/marianpekar/wifi-cartographer

An Android app written in Kotlin for scanning Wi-Fi networks and capturing BSSID, SSID, capabilities, and signal strength at specific geolocations. The output is a JSON file, with the default name wifi_map_data.json, that contains an array of objects that follow this JSON schema.

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "patternProperties": {
    "^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$": {
      "type": "object",
      "properties": {
        "capabilities": {
          "type": "string",
          "pattern": "\\[.*\\]"
        },
        "frequency": {
          "type": "integer",
        },
        "lastUpdateTime": {
          "type": "integer",
        },
        "levels": {
          "type": "object",
          "patternProperties": {
            "^\\d{2}\\.\\d+,-?\\d{2}\\.\\d+$": {
              "type": "integer",
              "minimum": -90,
              "maximum": 0
            }
          },
          "additionalProperties": false
        },
        "ssid": {
          "type": "string",
        }
      },
      "required": ["capabilities", "frequency", "lastUpdateTime", "levels", "ssid"],
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}

Wi-Fi Map Data Importer

๐Ÿ“‚ https://github.com/marianpekar/wifi-map-data-importer

A .NET 8 console application that parses the wifi_map_data.json output file from the Wi-Fi Cartographer Android app, calculates the approximate location of each AP, and stores a record for each network as a document in a MongoDB collection where every document follows this JSON schema.

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "_id": {
      "type": "object",
      "properties": {
        "$oid": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{24}$"
        }
      },
      "required": ["$oid"],
      "additionalProperties": false
    },
    "Bssid": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$"
    },
    "Ssid": {
      "type": "string",
    },
    "Frequency": {
      "type": "integer",
    },
    "Capabilities": {
      "type": "string",
    },
    "Longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "Latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    }
  },
  "required": ["_id", "Bssid", "Ssid", "Frequency", "Capabilities", "Longitude", "Latitude"],
  "additionalProperties": false
}

Wi-Fi Map

๐Ÿ“‚ https://github.com/marianpekar/wifi-map

A web application written in Node.js using the Express framework, Pug templates, and OpenStreetMap to list networks stored in MongoDB and mark the approximate location of each AP on a map.