Alexander Mylnikov

5Apr/152

Публичная база телефонных станций мира. Публичное открытое API

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

Это может быть полезно приложениям или сервисам, которые по идентификаторам мобильной станции хотят получить ее геопозицию и тип. Данная база частично является копией The OpenCellID map, однако в официальной реализации есть ограничение на количество запросов и обязательно выпускать API ключ. В базе так же собраны и другие источники данных.

Список открытых источников:

В моей реализации нет не лимитов, ни ключей.

Данные обновляются еженедельно.

Реализация API (Открытые источники)

http://api.mylnikov.org/geolocation/cell адрес запросов передаются методом GET

Так же доступен по протоколу https://api.mylnikov.org/geolocation/cell

Для запроса есть 4 обязательных поля:

  1. mcc - Integer (Код страны)
  2. mnc - Integer (Код телефонного оператора)
  3. cellid - Integer (Код телефонной станции)
  4. lac - Integer (Код региона или Area, Location)
  5. v - Номер версии (Актуацльная версия 1.1)
  6. data=open  - указание, что данные полученные из API строго открытые

Пример:

https://api.mylnikov.org/geolocation/cell?data=open&mcc=250&mnc=02&cellid=200719106&lac=7840&v=1.1

Ответ:

Строка JSON имеющее обязательное поле result.

Если станция найдена в поле result приходит ответ 200, при ошибках возвращается код 404.

{ 
"result":200,
"data":{ 
"lon":"30.385654398",
"mcc":250,
"lac": 7840,
"range":"869.994176272",
"radio":"UMTS",
"samples":49,
"time":1430577060,
"lat":"60.056594206",
"mnc":2,
"cellid":200719106
}
}
{ 
"result":404,
"data":{ 
},
"real":6,
"desc":"No information about location",
"time":1430579063
}

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

  • lat - широта
  • lon - долгота
  • range - точность определения координаты в метрах
  • samples - количество измерений
  • mcc - код страны
  • mnc - код мобильного оператора
  • lac - код мобильного региона
  • cellid - Id базовой станции
  • radio - тим базовой стании

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

Для запроса есть 4 обязательных поля:

  1. mcc - Integer (Код страны)
  2. mnc - Integer (Код телефонного оператора)
  3. cellid - Integer (Код телефонной станции)
  4. lac - Integer (Код региона или Area, Location)
  5. v - Номер версии (Актуацльная версия 1.1)

Пример:

https://api.mylnikov.org/geolocation/cell?mcc=250&mnc=02&cellid=200719106&lac=7840&v=1.1

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

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

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

250,02,7810,318,-81;250,02,4711,24208,-83;250,02,4711,24214,-89;250,02,4711,619,-95;250,02,4711,16627,-95

mcc,mnc,lac,cellid,SS;mcc1,mnc1,lac1,cellid1,SS1

SS - Signal Strength

https://api.mylnikov.org/geolocation/cell?v=1.1&search=MjUwLDAyLDc4MTAsMzE4LC04MTsyNTAsMDIsNDcxMSwyNDIwOCwtODM7MjUwLDAyLDQ3MTEsMjQyMTQsLTg5OzI1MCwwMiw0NzExLDYxOSwtOTU7MjUwLDAyLDQ3MTEsMTY2MjcsLTk1

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

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

Демо

По адресу https://find-cell.mylnikov.org/ находится демо-визуализация результатов поиска по сервису API.

Демо визуализация API https://find-cell.mylnikov.org/

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

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

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

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

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

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

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

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

Comments (2) Trackbacks (0)
  1. здравствуйте! большое спасибо за статьи, всё очень интересно и подробно описано. но вот с этой статьёй возникли пробелмы. подскажите, вот допустим мне нужно узнать местоположение +99365290417 ( рандомный номер). как тогда нужно оформлять запрос?

    • Сервис не дает возможности напрямую узнать положение абонента сотовой связи. Для того чтобы понять место абонента нужно сначала узнать индетификационные данные сотовой вышки, к которой подключен искомый абонент.


Leave a comment

No trackbacks yet.