О программе

geomac — это программа, которая позволяет находить географическое местоположение роутеров и точек доступа Wi-Fi по их MAC-адресам (также известны как BSSID). geomac получает данные о местоположении точек доступа от сетевых провайдеров геолокации (таких, как Яндекс Локатор, Google, Mylnikov.org и др.), которые, в свою очередь, собирают эти данные благодаря краудсорсингу через свои мобильные приложения.

Программа может быть полезна экспертам сетевой разведки (OSINT, open source intelligence), а также исследователям беспроводных сетей и вардрайверам (от англ. wardriving).

Особенности

Скриншоты

geomac Windows screenshot
geomac Linux screenshot

Загрузки

Последняя версия:

Linux

Arch Linux x86_x64

Arch Linux 32 pentium4

Arch Linux ARM aarch64

Arch Linux ARM armv7h

Debian/Ubuntu amd64

Debian/Ubuntu i386

Debian/Ubuntu arm64

Debian/Ubuntu armhf

Статичный исполняемый файл (консольная версия) x86_64

Статичный исполняемый файл (консольная версия) x86

Статичный исполняемый файл (консольная версия) aarch64

Статичный исполняемый файл (консольная версия) armv7

Android

Termux aarch64

Windows

Установщик (32/64-разрядный)

Переносимая версия (32-разрядная)

Переносимая версия (64-разрядная)

Замечания по установке на Linux

Пакеты для Linux включают в себя консольную и графическую версии программы. Скачайте пакет, соответствующий вашему дистрибутиву и архитектуре ЦП, и установите его.

Debian, Ubuntu, Linux Mint и производные

На данный момент программа поддерживает Debian 10 и выше, Ubuntu 18.04 и выше.
Можно установить с помощью apt:
sudo apt install ПУТЬ
к примеру:
sudo apt install ./geomac-amd64.deb
или с помощью Gdebi.

Arch Linux, Manjaro и подобные

Установка с помощью pacman:
sudo pacman -U ПУТЬ
к примеру:
sudo pacman -U geomac-0.1-1-x86_64.pkg.tar.zst

Другие дистрибутивы Linux

  1. Скачайте статичный исполняемый файл, соответствующий архитектуре вашего ЦП.
  2. Поместите его в /usr/bin/, к примеру, /usr/bin/geomac.
  3. Предоставьте права на исполнение файла:
    sudo chmod +x /usr/bin/geomac

Android/Termux

Установка с помощью dpkg:
dpkg -i ПУТЬ

Использование

Использование консольной версии

Консольная версия поставляется для Linux и Windows (для Windows рекомендуется добавить geomac в PATH при установке).
Использование:
geomac [-P] <bssids>
Примеры:
$ geomac 34e8940e3cde
Results for 34:E8:94:0E:3C:DE
Google          | -37.9029556, 144.7619731
Apple           | -37.90275955, 144.76197814
$ geomac -P 34e8940e3cde
Results for 34:E8:94:0E:3C:DE
Google          | -37.9029556, 144.7619731
Yandex Locator  | not found
Microsoft       | not found
Apple           | -37.90275955, 144.76197814
Mylnikov.org    | not found
$ geomac 0c:b5:27:d9:d5:cc f8:e9:03:14:30:4a
Results for 0C:B5:27:D9:D5:CC
Google          | 33.5072744, -7.6533991
Apple           | 33.50793457, -7.65461874

Results for F8:E9:03:14:30:4A
Google          | 32.0674328, 34.8164628
Yandex Locator  | 32.0674324, 34.8162308
Apple           | 32.06740188, 34.81635284

Использование графической версии

В дистрибутивах Linux, соответствующих стандартам freedesktop, графическая версия доступна из меню "Приложения":
Приложения → Интернет → geomac
или
Приложения → Инструменты → geomac

Также можно запустить её из терминала:

geomac-gui

На Windows графическая версия запускается из меню Пуск → geomac

Ответы на часто задаваемые вопросы

Как работает программа?

Для того чтобы найти местоположение точки доступа Wi-Fi, нужно знать её BSSID (MAC-адрес Wi-Fi), который, по сути, является её уникальным идентификатором. После того, как программа получает BSSID, она отправляет специально сформированные HTTP-запросы на серверы провайдеров геолокации и в ответ получает информацию о местоположении, из которой выделяет широту и долготу. Программа включает в себя разных провайдеров местоположения, чтобы охватить как можно большее количество точек доступа, а также чтобы дать пользователю возможность сравнить результаты. Такие геопровайдеры, как Яндекс Локатор, Google, Apple, Microsoft, собирают данные о местонахождении точек доступа от пользователей смартфонов, планшетов, ноутбуков со спутниковой навигацией через свои мобильные приложения и сервисы.

Какие геопровайдеры использует программа?

На данный момент в программе реализовано 5 провайдеров местоположения: Яндекс Локатор, Mylnikov.org, Apple, Microsoft и Google.

Как узнать BSSID (MAC-адрес) точки доступа?

Чтобы узнать BSSID точки доступа, которая находится рядом с вами, можно воспользоваться сканерами Wi-Fi, такими, как LinSSID, iw, wireless-tools (Linux), WiFi Analyzer (Android), inSSIDer (Microsoft Windows) либо специализированным ПО для аудита безопасности беспроводных сетей и вардрайвинга: Kismet, airodump-ng, wash, Wifite, OneShot (Linux), WPSApp, WiFi Warden, WIFI WPS WPA TESTER (Android).

Как найти точку доступа на карте?

Когда вы получили координаты точки доступа (два дробных числа, широту и долготу), скопируйте их в буфер обмена и вставьте в поле поиска сервиса Яндекс.Карты или Google Карты и нажмите Enter.

Насколько точно программа определяет местоположение?

Точность определения зависит от множества условий: расположение роутера, геопровайдер, погодные условия во время сканирования краудсорсером, оборудование краудсорсера и др. В большинстве случаев точность составляет 10-50 метров.

Что делать, если программа не нашла точку доступа?

Подождите некоторое время, спустя которое повторите поиск. Возможно, вы столкнулись со случаем, когда точка доступа появилась в эфире недавно, и ни один из геопровайдеров ещё не успел её зарегистрировать. Также попробуйте воспользоваться другими сервисами, например, WiGLE.

Почему программа проприетарная (автор не делится исходными кодами)?

В программе реализовано оригинальное решение, которое не было представлено где-либо в публичном доступе. Я как автор этой программы уважаю владельцев сервисов, которые использует программа, и не хочу публиковать информацию, которую не публикуют они. Возможно, я опубликую исходники в будущем.

Авторство

Эта программа была разработана Виктором Голованенко в надежде сделать мир чуточку лучше.
Связь со мной:

Telegram
GitHub

Благодарности

Отдельное большое спасибо человеку под ником Jemacivan за то, что он начал создание установщика для Windows, помогал с тестированием, со сборкой geomac для разных платформ, с созданием этой веб-страницы.

Большое спасибо разработчикам и сообществу языка программирования Nim, я написал эту программу на Nim с использованием следующих открытых библиотек:

так что большое спасибо их создателям.

Также я хочу выразить благодарность человеку под ником Yardanico, благодаря которому я узнал о языке программирования Nim и заинтересовался его изучением. Он, к тому же, неоднократно выручал меня, когда у меня были вопросы по Nim.