Alexander Mylnikov

15Apr/150

Определение местоположения по Wi-Fi (MAC, bssid) открытое API

Wi-FiСегодня я хочу представить публичный API для определения местоположения по данным точки доступа Wi-Fi. В итернете достаточно много ресурсов предлагающих определение местоположения по данным Wi-Fi, однако все они либо платные, либо содержат ограничение на количество запросов, либо очень маленькие.

Данная база может быть интересна любым приложениям которые имеют географическую привязку с помощью Wi-Fi.

В своей базе я собрал все доступные публичные источники:

В данный момент база  содержит 10М Wi-Fi и постоянно наполняется новыми. Если у вас обширная база Wi-Fi  или источники буду рад ее добавить в свою базу. Пишите на [email protected].

API не содержит никаких скрытых лимитов или задержек. Данные предоставляются "как есть".

Описание публичного API (Открытые источники)

Адреса обращения

https://api.mylnikov.org/wifi/main.py/get?bssid={wifi bssid}

https://api.mylnikov.org/wifi/main.py/get?bssid={wifi bssid}

{wifi bssid} - Bssid точки доступа (MAC адрес сетевой карты точки доступа)

Варианты:

  • A0:F3:C1:3B:6F:90
  • A0F3C13B6F90
  • a0f3c13b6f90
  • A0-F3-C1-3B-6F-90
  • a0-f3-c1-3b-6f-90

Пример:

https://api.mylnikov.org/wifi/main.py/get?bssid=00:0C:42:1F:65:E9&data=open&v=1.1

Варианты ответа:

{"result":200, "data":{"range": 140, "lan": "60.05205150", "lon": "30.33848000", "signal": "-80"}}
Поле "result" содержит значение 200 если Wi-Fi найден, в противном случае возвращается 404

Описание успешного ответа:

  • lat - широта
  • lon - долгота
  • signal - средний уровень сигнала
  • range - точность определения координаты в метрах

Реализация API (Данные "как есть")

https://api.mylnikov.org/wifi/main.py/get?bssid=A0:F3:C1:3B:6F:90&v=1.1

При данном виде запроса данные представляются только в иследовательских целях. Конечный пользователь использует данные на свой страх и риск

Уточненное местоположение

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

Пример исходной строки:

28:28:5d:d6:39:8a,-76;90:94:e4:ac:12:26,-80

bssid,SS;bssid1,SS1

SS - Signal Strength

https://api.mylnikov.org/wifi/main.py/get?v=1.1&search=Mjg6Mjg6NWQ6ZDY6Mzk6OGEsLTc2OzkwOjk0OmU0OmFjOjEyOjI2LC04MA==

В данном моде так же работает тег data=open который сообщает серверу что данные должны быть получены исключительно из открытых источников. К сожалению, в этом случае часты ситуации с отрицательным результатом поиска.

Лицензирование

Через одно API доступно, на самом деле, два проекта.

Первый и лицензируемый проект это все запросы к API с ключем "data=open" и он работает под лицензией  MIT License.

Второй проект получает данные "как есть". Полностью законное получение данных не оговаривается. И обращение к API без ключа open=data в принципе не документируется и предоставляется как "пасхальное яйцо". Данные предоставляемые используются конечным пользователем на свой страх и риск.

О любых ошибках или сложностях использования прошу писать мне на почту [email protected].

Скачать данные

Раздел загрузок

Приложение для тестирования:
Get it on Google Play

Приложение для тестирования (Верисия для разработчиков):
Get it on Google Play

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

No trackbacks yet.