Многие люди обычно думают, что геолокация – это глобальная навигационная спутниковая система, такая как GPS, ГЛОНАСС, Галилео и Бэйдоу, а также IP-геолокация, но последний крайне неточный и зачастую полезен только для того чтобы узнать о стране, регионе или городе нахождения.
Но если вы когда-либо заходили в настройки местоположение вашего телефона, вы знаете, что GPS – это только один вариант, поскольку геолокация также может использовать мобильные базовые станции и SSID WiFi, первый работает там где имеется зона покрытия, второй в зоне с достаточно высокой плотностью точек доступа. Поэтому, мало кто задумывается об использовании такой технологии для поиска местоположения с модулями WiFi, пока компания Espressif Systems не выпустила приложение под названием “Геолокация с ESP8266“.
В этом документе описывается, как модуль ESP8266 может использоваться для сканирования ближайших точек доступа Wi-Fi, затем использует их SSID, RSSI и MAC-адрес, чтобы получить данные для геолокации устройства, используя API геолокации Google.
Этот в основном двухэтапный процесс с помощью AT-команды, запрашивает список доступных точек доступа, SSID, RSSI и MAC-адрес:
1 2 3 4 |
AT+CWLAP +CWLAP:(2,"HotelFlower",-76,"c8:3a:35:b3:16:48",11,0,0) +CWLAP:(3,"IoTBits",-93,"08:bd:43:66:6a:86",6,-27,0) |
и после настройки безопасного SSL соединения, вы сможете передать эти данные в Google Geolocation API, чтобы получить местоположение с помощью команды, которая выглядит так:
1 2 3 4 5 6 7 8 9 |
AT+CIPSEND=336 > POST /geolocation/v1/geolocate?key=AIzaSyCNStbdlDS_L HTTP/1.1 Host: www.googleapis.com Content-Type: application/json Content-Length: 166 {"homeMobileCountryCode": 310, "homeMobileNetworkCode": 410, "radioType": "gsm", "carrier": "Vodafone", "considerIp": "true", "cellTowers": [], "wifiAccessPoints":[]} |
Дальнейшие исследования привели к эксперименту m0xpd с геолокацией на ESP8266 в прошлом году, используя IP-геолокацию (оказалось очень неточной), а также API Google и Mozilla, разместили свой исходный код Arduino на Github. API Google нашел дом в Манчестере только по информации, полученной из списка точек доступа.
Это также означает, что незащищенные устройства в общедоступном интернете могут быть легко обнаружены, поскольку хакеру вошедшему в систему маршрутизатора или устройство IoT, просто нужно запустить команду, чтобы узнать информацию, необходимую для API геолокации.
Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.