Как найти физический адрес роутера по BSSID через geowifi

16 авг 2026
1,509
141
21
4 недели

Каждый раз, когда смартфон ищет знакомую сеть, он сканирует радиоэфир и видит десятки роутеров вокруг. Крупные компании вроде Google и Apple годами собирают эти данные в связке с GPS-координатами, чтобы определять местоположение устройств в плотной городской застройке без ожидания спутников.

В результате вокруг нас сформировалась гигантская карта всех домашних и офисных точек доступа. Если в руки попадает MAC-адрес роутера (BSSID) или редкое имя сети (SSID), его физические координаты можно вытащить за пару секунд.

geowifi

Утилита geowifi берет эту рутину на себя. Вместо ручной проверки десятка разрозненных сервисов она отправляет запросы сразу по всем доступным базам данных геолокации Wi-Fi.

Зачем собирать все базы в один скрипт

Каждая база данных собирает координаты по-своему. Сервис Wigle держится на энтузиастах, которые ездят по городам с включенными сканерами. База Apple наполняется смартфонами на iOS, база Google — устройствами на Android.

Реклама

Если искать точку только в одном месте, велик шанс получить пустоту. Точки доступа переезжают, появляются в новостройках или исчезают из публичных списков. Утилита geowifi опрашивает открытые и полузакрытые источники:

  • Wigle
  • Сервисы геолокации Apple
  • Google Geolocation API
  • Mylnikov (mylnikov.org)
  • WifiDB
  • Combain
  • Freifunk Carte

Интересная деталь: запросы к Apple здесь работают без регистрации и платных подписок, используя реализацию, вдохновленную проектом iSniff-GPS. Для Google и Wigle понадобятся ключи, но у них есть бесплатные лимиты, которых хватает для повседневных задач.

Быстрый старт и настройка

Проект написан на Python. Развернуть его можно локально в виртуальном окружении или через Docker-контейнер.

Для локальной работы понадобятся git и Python 3:

git clone https://github.com/GONZOsint/geowifi
cd ./geowifi/
virtualenv geowifi
source geowifi/bin/activate
python3 -m pip install -r requirements.txt

Если не хочется возиться с окружением Python, собираем контейнер:

docker build -t geowifi:latest .

Конфигурация API

В директории gw_utils лежит файл config.yaml. В нем настраиваются токены доступа:

wigle_auth: "your_encoded_token"
google_api: "your_google_api_key"
combain_api: "your_combain_key"
no-ssl-verify: false

Для базовой работы с открытыми базами и Apple ключи не обязательны, но с ними процент найденных точек заметно выше.

Как искать координаты

Утилита принимает на вход идентификатор сети и флаг типа поиска: по BSSID (MAC-адресу) или SSID (имени сети).

Поиск по MAC-адресу роутера:

python3 geowifi.py -s bssid C8:D7:19:XX:XX:XX

Поиск по названию сети:

python3 geowifi.py -s ssid "MyCoffeeShop_Free"

По умолчанию программа генерирует HTML-карту с метками от разных провайдеров данных. Разные базы могут выдавать координаты с небольшим разбросом, и наглядная карта помогает понять реальную зону покрытия или точное здание.

Map output

Если вывод нужен для последующей автоматизации или передачи в другой скрипт, достаточно добавить параметр -o json:

[
  {
    "module": "google", 
    "bssid": "C8:XX:XX:XX:5E:45", 
    "latitude": 33.571844, 
    "longitude": -112.0495897
  }, 
  {
    "module": "vendor_check", 
    "vendor": "Cisco-Linksys, LLC"
  }, 
  {
    "module": "apple", 
    "bssid": "C8:XX:XX:XX:5E:45", 
    "latitude": 33.57198715, 
    "longitude": -112.0495812
  }, 
  {
    "module": "wigle", 
    "bssid": "C8:XX:XX:XX:5E:45", 
    "ssid": "Vertigo", 
    "latitude": 33.60998154, 
    "longitude": -112.0495922
  }
]

Помимо координат утилита сразу определяет производителя сетевого оборудования по OUI-префиксу MAC-адреса.

Где это находит применение

Инструмент создавался под задачи OSINT и сетевой разведки, но пригодится и в смежных сферах:

  1. Форензика и анализ сетевых дампов. Если на исследуемом ноутбуке сохранились probe requests или история подключений к Wi-Fi сетям, по BSSID можно восстановить примерный маршрут перемещения устройства.
  2. Аудит безопасности и приватности. Полезно проверить свой домашний или корпоративный роутер. Нередко выясняется, что роутер, перевезенный из квартиры на дачу, до сих пор числится на старом адресе в базах Google или Apple.
  3. Геолокация IoT-устройств. Когда устройство сообщает только список видимых точек доступа, скрипт превращает этот список в понятные географические координаты без использования GPS-модуля.

Итоги

geowifi — компактный рабочий инструмент, решающий одну конкретную задачу без лишней сложности. Код простой, зависимости стандартные, логика прозрачная. Если вы занимаетесь OSINT-расследованиями, анализируете дампы беспроводного трафика или просто интересуетесь тем, сколько геоданных утекает через Wi-Fi роутеры, положите эту утилиту в свой рабочий арсенал.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.