регион по номеру телефона api
API стандартизации телефонов
✔️ Проверяет телефон.
✔️ Проставляет актуальный код города / DEF-код.
✔️ Восстанавливает оператора. Учитывает переносы номера между операторами.
✔️ Определяет страну, регион, город и часовой пояс.
Как вызвать
Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.
Укажите при вызове:
Что в ответе
Название | Длина | Описание |
---|---|---|
source | 100 | Исходный телефон одной строкой |
type | 50 | Тип телефона |
phone | 50 | Стандартизованный телефон одной строкой |
country_code | 5 | Код страны |
city_code | 5 | Код города / DEF-код |
number | 10 | Локальный номер телефона |
extension | 10 | Добавочный номер |
provider | 100 | Оператор связи (только для России) |
country | 50 | Страна |
region | 100 | Регион (только для России) |
city | 100 | Город (только для стационарных телефонов) |
timezone | 50 | Часовой пояс города для России, часовой пояс страны — для иностранных телефонов. Если у страны несколько поясов, вернёт минимальный и максимальный через слеш: UTC+5/UTC+6 |
qc_conflict | 5 | Признак конфликта телефона с адресом |
qc | 5 | Код проверки |
Тип телефона
Тип | Пример телефона |
---|---|
Мобильный | +7 911 243-45-68 |
Стационарный | +7 495 456-55-77 |
Прямой мобильный | +7 495 243-45-68 |
Колл-центр | 8 800 222-12-22 |
Неизвестный | +7 333 1111112 |
Коды качества
Код проверки qc
Нужно ли вручную проверить распознанный телефон:
Код qc | Описание | Нужно проверить вручную? |
---|---|---|
0 | Российский телефон, распознан уверенно | Нет |
7 | Иностранный телефон, распознан уверенно | Нет |
2 | Телефон пустой или заведомо «мусорный» | Нет |
1 | Телефон распознан с допущениями или не распознан | Да |
3 | Обнаружено несколько телефонов, распознан первый | Да |
Признак конфликта телефона с адресом qc_conflict
Указал ли клиент телефон, соответствующий его адресу. Удобно для проверки уровня риска:
Код qc_conflict | Описание |
---|---|
0 | Телефон соответствует адресу |
2 | Города адреса и телефона отличаются |
3 | Регионы адреса и телефона отличаются |
Заполняется только для российских адресов. Для иностранных всегда равен 0.
Коды ответа на запрос
HTTP-код ответа | Описание |
---|---|
200 | Запрос успешно обработан |
400 | Некорректный запрос |
401 | В запросе отсутствует API-ключ или секретный ключ Или в запросе указан несуществующий ключ |
403 | Не подтверждена почта Или недостаточно средств для обработки запроса, пополните баланс |
405 | Запрос сделан с методом, отличным от POST |
429 | Слишком много запросов в секунду или новых соединений в минуту |
5xx | Произошла внутренняя ошибка сервиса |
Примеры и интеграции
Ограничения
Максимальная частота запросов — 10 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Дадата не поддерживает вызов этого метода из браузерного JavaScript. Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.
Определить оператора мобильного абонента (MNP API)
Форма определения оператора абонента (MNP)
Статистика по базе данных перенесенных номеров (БДПН)
Данная информация отражает актуальное кол-во перенесенных номеров на 10.10.2021 без учета тех, кто вернулся обратно к своему оператору.
По другим странам статистика не ведется, но информация предоставляется.
IMSI, MCC, MNP, PLMN
Коды MCC и MNP и соответствующие им названия страны и оператора доступны с помощью API запросов. Список МСС кодов.
PLMN это код страны + код оператора, т.е. MCC + MNP.
CellID (CID) — «идентификатор соты». Тот самый сектор базовой станции. Этот параметр также может быть представлен в десятичном, и шестнадцатеричном виде.
MNP API
Для получения информации об операторе абонента мобильной связи с учетом MNP-переноса используйте следующий API-запрос:
В ответ Вы получите структуру формата html или xml или json содержащую следующие поля:
Если ошибка, то:
error=текст ошибки
Пример с перенесенным абонентом:
Для получения оператора, от кого перешел (поле oper_from), по его коду используйте запрос:
Для получения города(областного центра) по его коду из поля regon->capital используйте запрос:
Получить номер телефона в любой из 150 стран
Если Вы планируете интернациональную компанию, вам понадобятся местные, в том числе бесплатные (8-800), номера. Для объединения всех местных номеров в единный call-центр Вы можете использовать SIP-телефонию
API получения местонахождения по номеру телефона:
страны и города
Форма получения информации по номеру телефона здесь
Большинство API функций сервиса htmlweb.ru совершенно бесплатны. Идентификация нужна для исключения злоупотреблений и позволяет разделить количество запросов от разных пользователей. Ограничения на бесплатные запросы и тарификация описана здесь.
Для идентификации используется API_KEY из_профиля. API_KEY может быть передан как GET так и POST запросом.
Не размещайте ключ API_KEY в открытом доступе и в javascript. Он фактически заменяет ваши логин пароль и дает возможность использовать весь функционал нашего сайта от вашего аккаунта, включая платные функции.
Ключи выбора формата:
Для указания кодирования ответа в нужном вам формате добавьте в запрос параметр html или json или xml, например:
Ключ выбора кодировки charset=:
Если Вам нужен другой формат или другая кодировка, а также обо всех найденных проблемах и пожеланиях сообщайте нам.
Структура API запроса для получения информации по номеру телефона:
Структура API запроса для получения информации по номеру телефона в json-формате:
Дополнительно возвращается несколько признаков:
Пример для получения информации в html-формате с Вашим API_KEY:
Краткий (short) html-ответ:
Краткий (short) html-ответ для мобильного телефона:
Краткий (short) json-ответ:
Если Вы хотите сразу сделать платный запрос к оператору для получения информации об абоненте, добавьте в запрос параметр hlr. Например:
Вы получите информацию из базы о привязке абонента и будет отправлен HLR-запрос оператору. Для отправки только HLR-запроса используйте следующий вызов:
Ответ от оператора получите через callback, указанный в вашем профиле или в https://htmlweb.ru/sendsms/#История
Пример запроса на PHP:
HLR-запрос информации об абоненте
Вы можете отправить специальный запрос оператору для получения информации об абоненте, так называемый HLR-запрос. HLR (Home Location Register) — это база данных, которая содержит подробную информацию о каждом абоненте мобильных сетей GSM-операторов. Стоимость одного HLR-запроса составляет 45 копеек. В ответ вы получите следующую информацию:
В ответ на запрос информации от абоненте, оператор возвращает следующую информацию:
С помощью данного запроса Вы можете определить существование и доступность абонента, отследить замену СИМ-карты, определить в домашней стране находится абонент или в роуминге. Банки по номеру симки определяют, что человек не менял сим-карту и ему можно отправлять кодовые СМС. Этот запрос чаще всего используется для чистки базы абонентов, чтобы удалить уже несуществующие из списка рассылок. Чтобы определить в сети или нет (ON Line) сейчас абонент, существует PING-запрос. Но его стоимость равна стоимости СМС по прямым каналам.
Российские операторы Мегафон и Yota блокируют HLR-запросы информации о своих абонентах.
API запрос для получения HLR-информации:
https://htmlweb.ru/json/sms/hlr/79185558077?api_key=API_KEY_из_профиля
Ответ:
Ответ на этот запрос поступает через некоторое время. Вы можете получить его с помощью Callback вызова адреса, указанного у вас в профиле или вызвать этот запрос ещё раз через некоторое время.
Как определить оператора и регион по номеру телефона
Полезно знать, какого телефонного оператора выбрал клиент и в каком регионе. Тогда можно разбить клиентскую базу географически и не звонить ночами. Или проводить промоакции вместе с операторами. А некоторые наши заказчики экономят: для каждого оператора выбирают самого дешевого СМС-агрегатора.
Поэтому «Дадата» с давних пор находит оператора по номеру телефона. Алгоритм простой — сделай и пользуйся. Разве что в 2013 году, когда отменили «мобильное рабство», пришлось чуть скорректировать процесс. В этой статье расскажу, как у нас все работает.
В процессе есть большая сложность — получить доступ к базе перенесенных номеров. Частным лицам его не выдают, да и компаниям придется тяжело. Об этом — в отдельном разделе.
Разбить телефонный номер на части
Первое, что нужно сделать, — разобрать телефон на три части:
Если не знать, какая часть номера из каких цифр состоит, дальше будет непросто. Выход — поставить маску, чтобы пользователи сразу вводили номера по частям. Или разбирать уже после, с задачей справится библиотека Google для работы с телефонами.
Найти оператора по номеру телефона, заглянув в план нумерации
Главный российский документ, согласно которому операторы получают телефонные номера, — это план нумерации Россвязи. В нем ясно прописали все расклады: какие коды и номера каким операторам в каких регионах принадлежат. Что приятно, справочник Россвязи свободно лежит на странице rossvyaz.ru/deyatelnost/resurs-numeracii/vypiska-iz-reestra-sistemy-i-plana-numeracii.
Справочник выложили сразу в двух форматах, что очень мило со стороны Россвязи. Обновляют раз в месяц
Внутри плана нумерации четыре файла: три для стационарных номеров и один — для мобильных. Разница между содержимым файлов заметна, если посмотреть на префиксы в названиях:
Номер +7 495 999-99-34 может быть прямым мобильным. А может быть, это офис покупает у сотового оператора фиксированную связь — знает только сам оператор.
Но я отвлекся, вернемся к плану нумерации. Внутри файлов все очень просто — таблица на шесть полей.
Порядок полей таков: ABC- или DEF-код зоны, начало диапазона, конец диапазона, емкость, оператор, регион. Емкость — просто количество номеров, входящих в диапазон
Искать по плану нумерации регион и оператора — одно удовольствие.
Порой телефон не укладывается ни в один диапазон. Это значит, что номер неправильный. Исключений нет. На этом, надо сказать, прокалывается упомянутая библиотека Google — она одобряет внешне верный телефон, не сопоставляя с планом нумерации.
Раньше на этом шаге изыскания заканчивались. Но в 2013 году власти приняли закон об отмене «мобильного рабства». С тех пор номера телефонов прибиты к операторам не так уж крепко.
Теперь закон разрешает: меняйте оператора, сохранив номер. Но, внимание, только внутри региона. Нельзя вытащить телефон из региона, предусмотренного Россвязью. Как нельзя и «сломать» диапазоны распределения номеров. Поэтому, если интересен лишь регион телефонного номера, дальше можно не читать. А я продолжу и расскажу, как найти сменившие операторов номера.
Получить доступ к базе перенесенных номеров
Это шаг бюрократический, соответственно, самый сложный. А для большинства компаний и вовсе непроходимый, к сожалению.
Номера, сменившие оператора, хранят в базе данных перенесенных абонентских номеров (БДПН). Ее оператор — уже не Россвязь, но Центральный научно-исследовательский институт связи.
Проблема в том, что получить доступ к БДПН очень непросто. Конечно, если вы не мобильный оператор, субъект национальной платежной системы, силовая структура или другое ведомство.
Все, что может рядовой пользователь — вручную проверить конкретный номер
Мы получили доступ к БДПН в далеком 2013 году как «иная организация». Но с тех пор правила, похоже, ужесточили. Даже бланк заявления сильно изменился, свежий лежит на сайте Института связи. Поэтому посоветовать здесь ничего не могу, увы.
UPD. В комментариях пишут, что с доступом все не так сурово: «Работал в энергосбытовой компании, без проблем за несколько дней получил доступ к бдпн. заполнил заявление, подписал директором, поставил печать и отправил по электронике. Потом созвонился для верности».
Проверить, не ушел ли номер к другому оператору
Если получили доступ к официальной базе перенесенных номеров, дальше легко. Проверяем, не поменял ли абонент оператора, сбросив оковы «мобильного рабства».
Институт связи выкладывает БДПН на SFTP-сервер, в три папки.
В первой папке лежит полный справочник. Во второй — инкрементальные обновления. А третья хранит номера, вернувшиеся «владельцам»
В название инкрементов вставляют дату и время обновления. Если хотите максимально срочно получать перенесенные номера — вот, пожалуйста. Если срочности нет, проще раз в сутки загружать полный справочник
Формат файлов — CSV, сжатые в ZIP. Внутри — проще некуда.
В файлах справочника три поля: номер, оператор и количество строк. Причем третье поле заполняют только для первой строки — изящное решение
Историю в БДПН не хранят: каждый день на сервер выкладывают все перенесенные номера. Если телефона нет в полном справочнике или в инкрементах за день, значит, он подчиняется плану Россвязи. Поэтому для наших целей папка с вернувшимися номерами — ReturnIncrementNew — не нужна.
Каждый день мы загружаем с сервера свежую БДПН. Для этого годится любой SFTP-клиент: на Windows подойдет WinSCP или FileZilla FTP Client, на Ubuntu — Nautilus. Классическая ошибка при этом: оставить в настройках дефолтный FTP вместо положенного SFTP. Так можно долго промучиться, не повторяйте наших ошибок.
Когда справочник перенесенных номеров под рукой, осталось поискать в нем исследуемый номер. Варианта два:
А можно разобрать номер «Дадатой»
Еще вариант — отдать номер телефона «Дадате», сервис вытащит из него полезное.
Распозна́ем оператора, исправим опечатки в номере, покажем страну, регион и часовой пояс. Наконец, отделим стационарник от мобильного
Скрипт определения оператора и региона по номеру мобильного телефона
Добрый день друзья! Как часто вы пользуетесь сервисом определения региона и оператора по номеру мобильного телефона? Мне иногда таким сервисом приходится пользоваться, например чтобы понять с какого региона звонил абонент, чей звонок я пропустил, а далее уже понять кто из клиентов это мог быть, так проще предварительно подготовить нужную информацию для разговора. Впрочем причины у всех могут быть разные. Именно о таком скрипте я и хочу рассказать.
Скрипт позволяет определить город и регион абонента, по номеру мобильного телефона, а также получить дополнительную информацию: оператора мобильной связи, код DEF, диапазон выделенных для оператора номеров, период дат предоставления диапазона номеров.
DEF — телефонный код, присвоенный по негеографическому признаку (в отличие от кодов ABC), например, по признаку оператора связи. Чаще всего употребляется для сотовой связи.
Скрипт представляет собой форму с полем ввода номера мобильного телефона. Запрос уходит на сервер посредствам Ajax(без перезагрузки страницы), затем для получения информации серверный PHP скрипт обращается к базе данных, которая содержит около пяти тысяч записей о сотовых операторах России. База данных идет в комплекте со скриптом. Скрипт имеет адаптивную верстку и может быть встроен в любой сайт по средствам фрейма или прямой вставки кода. Шаблон и стили вынесены в отдельные файлы, что позволяет отредактировать его, что называется, под себя. С помощью него можно организовать соответсвующий сервис на сайте, тем самым улучшить его поведенческий фактор и придать ему(сайту) дополнительную ценность в глазах пользователей.
Также возможны любые доработки скрипта, добавление дополнительной информации в базу данных, по сотовым операторам других стран и прочее. Обращайтесь, обсудим!