Узнать какой регион и оператор сотовой связи по номеру телефона

Почему важна проверка абонента?

Владелец SIM-карты может сменить оператора, сохранив за собой номер. При разговоре с ним вы будете использовать деньги на счёте или минуты, включённые в тариф. Чтобы избежать лишних затрат, следует проверить оператора и регион по номеру телефона.

Mnp api

Для получения информации об операторе абонента мобильной связи с учетом MNP-переноса используйте следующий API-запрос:

База данных перенесенных номеров

Если нужно точно определять оператора, тогда не обойтись без Базы Данных Перенесенных Номеров, оператором которой является

ЦНИИC

. Процедуру подключения к базе можно найти у них на сайте:

В каких ещё странах доступен перенос номера от одного оператора к другому

СтранастационарныемобильныеToll-freeнациональные
Австралия
Австрия
Бельгия
Болгария
Бразилия
Великобритания
Виргинские Острова США
Германия
Греция
Дания
Израиль
Ирландия
Испания
Италия
Канада
Кипр
Латвия
Литва
Люксембург
Мексика
Нидерланды
Новая Зеландия
Норвегия
Панама
Перу
Польша
Португалия
Пуэрто Рико
Республика Корея
Румыния
Словакия
Словения
США
Турция
Финляндия
Франция
Хорватия
Чехия
Чили
Швейцария
Швеция
Эстония
Южная Африка

Зачем нужен этот сервис?

Безлимитные разговоры предоставляются внутри сети. Для общения с абонентами других операторов предусмотрены пакетные минуты. Стоимость звонков устанавливается в зависимости от местоположения собеседника. Определив регион по номеру телефона, вы сможете планировать расходы на оплату услуг связи.

Читайте про операторов:  Почему пропала сеть на смартфоне или планшете? Что делать, если не работает мобильный интернет?

Как определять абонентов

Самое очевидное решение этой задачи: посмотреть на слово

«диапазон»

и использовать перечисленные емкости буквально. Т.е. для определения номера, сортируем всех операторов по их диапазонам и ищем запись, которая относится к минимальному диапазону, в который попадает конкретный номер. Сложность этого алгоритма будет как у бинарного поиска, что довольно неплохо.

Но есть более оригинальный и универсальный способ реализации, сложность которого – константа, независимо от размера данных. Этот метод предполагает использование масок номеров.

Как пользоваться сервисом?

Узнать оператора и регион регистрации просто:

— укажите номер мобильного телефона;

— введите проверочное число с картинки, а если вы не можете разобрать его, обновите изображение;

— нажмите кнопку «Проверить».

Онлайн-сервис найдёт название оператора и регион, в котором зарегистрирован номер. Услуга предоставляется бесплатно.

Крупные компании

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

Больше информации о компаниях, организациях, их филиалах и используемых ими мобильных, городских и федеральных номерах телефонов вы найдете на странице конкретного номера.

Маска номера


Маска номера – это строка состоящая из цифр и спецсимвола со значением «wildcard одиночного символа» (“?”), который говорит, что на его месте может быть любая цифра. Причем после знака вопроса может стоять только знак вопроса.

Таким образом, один из диапазонов Билайн в Москве «79031000000 – 79031999999», в виде маски будет записан как «79031??????».

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

Полный перечень кодов мобильных операторов

В данном перечне представлены все коды, которые используются мобильными операторами России на настоящий момент.

Популярные коды

Префиксное дерево

Гораздо более эффективный по производительности метод – построение

из масок, который будет опираться на то, что номера состоят из цифр. Каждая нода этого дерева сможет иметь до 10 цифровых нод-потомков (0-9) и одной wildcard-ноды. Wildcard-нода может иметь только wildcard-потомков. При добавлении очередной маски в дерево, каждый символ маски последовательно превратится в ноду. Таким образом, фактически мы представляем все имеющиеся у нас маски в виде одного дерева.

Алгоритм поиска в дереве, думаю, уже понятен: берем по порядку каждую цифру из искомого номера и последовательно спускаемся по дереву начиная с корня. В первую очередь спускаемся по цифровым нодам, если цифровых нод нет, то смотрим есть ли “?”-нода. Если есть, то в конечном итоге проверяем длину маски, и если она соответствует номеру, то оператор найден.

Регионы россии

Выберите свой регион, и мы покажем вам всю статистику, респределение номеров телефонов по def-кодам и мобильным операторам. Если вашего региона нет среди популярных – перейдите на страницу с полным списком регионов.

Россвязь

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

Статистика по базе данных перенесенных номеров (бдпн)

Данная информация отражает актуальное кол-во перенесенных номеров на 28.07.2022 без учета тех, кто вернулся обратно к своему оператору.

По другим странам статистика не ведется, но информация предоставляется.

Три быстрых способа определить мобильного оператора и регион абонента

a3bdfa073e384fd02fd9e89a3f7e89f6.jpg

Мне часто звонят с незнакомых номеров. Уверена – такое случается не только со мной. Многие звонки связаны с работой, но часто, перезванивая, я натыкаюсь на спам. Поэтому мне проще сначала проверить откуда звонили, а уже потом перезванивать.

Конечно, я как и все, смотрю на первые цифры в номере и по ним пытаюсь понять, кто оператор. Логика простая: когда номер начинается на 921, то это Мегафон, 960 – Билайн, 911 – МТС и так далее.

Но эта схема работает только в домашнем регионе и далеко не всегда – сегодня многие абоненты с легкостью переходят от одного оператора к другому с сохранением номера, да и некоторые DEF коды часто используют разные операторы.

Когда сталкиваюсь с номерами из других регионов, то вообще начинается путаница. К примеру, код Мегафона 922 используется в 11 регионах России. Я нашла несколько простых способов, которые помогают определить мобильного оператора и регион абонента с высокой точностью.

Проверка номера на сайте Центрального научно-исследовательского института связи

На института связи есть сервис, с помощью которого можно посмотреть, к какому оператору относится номер. Система определяет даже портированные номера – те, которые пользователи переносили от одного оператора к другому.
e62a7e8cad6c9ca2ca414fc009b4330b.png
Но если стоит задача выяснить из какого города поступил звонок, то этот сервис вряд ли поможет. На сайте ЦНИИС можно определить только оператора.

Сервис для проверки от Мегафона

Бесплатный Мегафона для определения телефонных кодов операторов. Корректно определяет принадлежность к оператору и региону. С портированными номерами тоже нет проблем.
Проверяла на своем старом номере, который я когда-то переносила с Мегафона на Билайн.
aa0f1daf23752a687387b4ee6778303b.png

Но странная история с симкой от Ростелекома. При проверке определяется как Tele2. В СМИ , что госкорпорация собирается купить 100% акций мобильного оператора. Но это не точно.

Мобильное приложение “Кто звонит”

“” – приложение для iOS от российских разработчиков. Более информативный способ получить данные об абоненте. Вводишь в главном окне номер и получаешь полноценный отчет – регион, оператор и отзывы о номере от других пользователей. Сомнений, что они настоящие, нет.

87cca28493db36f5600082bf80ed1cdd.jpeg
Если правильно настроить приложение, то номера будут определяться во время входящего вызова. Удобная программа, но платная – 379 рублей.

Есть лайфхак для бережливых – онлайн-сервис “”. Там можно бесплатно смотреть отзывы о номерах.

Пишите свои способы определения телефонных номеров! Всем удачи ;)

Форма определения оператора абонента (mnp)

Осталось 20 бесплатных запросов до 22:27:23 29.07.22

Хеш-таблица

Например, один из таких алгоритмов это хранение соответствий «маска-оператор» в хеш-таблице (или любом другом key-value хранилище). Суть алгоритма в следующем: все подобные маски складываются в хеш-таблицу, где они являются ключами. Значениями в таблице являются объекты-операторы с регионами.

Работу поиска нагляднее всего объяснить на примере. Скажем, мы ищем информацию по номеру: 7(903)100-1234, и у нас есть маска 79031?????? – Билайн, Москва.

Сперва ищем в таблице запись по ключу в точности как исходный номер: 79031001234.Если не найдено, то меняем последнюю цифру номера на “?” и ищем по ключу 7903100123?.

Если опять ничего не нашли, то снова меняем последнюю цифру на “?” и ищем по 790310012??, и так далее.

В конце концов мы сделаем поиск по ключу 79031?????? и обнаружим, что номер относится к оператору Билайн, Москва.

Видно, что в данном случае сложность алгоритма равна сложности нескольких взятий из хеш-таблицы, что при правильной реализации обычно равно константе. Сложность поиска в таком дереве зависит от длины телефонных номеров, которая по рекомендации ITU-T E.164 не превышает 15 символов.

Этот же алгоритм можно применить и к портированным номерам – их можно просто добавить в ту же самую хеш-таблицу.

Заключение

В зависимости от ограничений, можно комбинировать эти подходы и разделять хранилища перенесенных номеров и масок Россвязи. Например, по памяти выгоднее для портированных номеров использовать подход с хеш-таблицей, а для реестров Россвязи всегда выгоднее использовать дерево масок.

При поиске сначала смотреть в таблице, а если в ней ничего не найдено, то искать в дереве. Разделение хранилищ в первую очередь удобно для их автообновления, т.е. если изменилась БДПН (а она меняется постоянно), то совсем необязательно перечитывать диапазоны Россвязи.

Для максимальной производительности можно хранить всю информацию прямо в оперативной памяти. В моей реализации на Java, дерево масок Россвязи занимает не более 20-30Мб, хеш-таблица с масками портированных номеров: около 500-600 Мб. Если же портированные номера хранить в префиксном дереве, то из-за того, что ноды дерева получаются очень разреженные, памяти потребуется примерно в 1.5 раза больше. Но зато, это дает достаточно весомый прирост производительности.

Спасибо за внимание!

→ Весь исходный код доступен на github.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *