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


Загрузки
Последняя версия:
Linux
Статичный исполняемый файл (консольная версия) x86_64
Статичный исполняемый файл (консольная версия) x86
Android
Замечания по установке на 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
- Скачайте статичный исполняемый файл, соответствующий архитектуре вашего ЦП.
- Поместите его в /usr/bin/, к примеру, /usr/bin/geomac.
-
Предоставьте права на исполнение файла:
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 с использованием следующих открытых библиотек:
- argparse [лицензия MIT]
- NiGui [лицензия MIT]
- protobuf [лицензия MIT]
- nimpb [лицензия MIT]
- struct [лицензия MIT]
- zippy [лицензия MIT]
Также я хочу выразить благодарность человеку под ником Yardanico, благодаря которому я узнал о языке программирования Nim и заинтересовался его изучением. Он, к тому же, неоднократно выручал меня, когда у меня были вопросы по Nim.