как узнать какой оператор обслуживает номер телефона
Как определить мобильного оператора и домашний регион по номеру телефона
Когда мы пытаемся определить какому оператору принадлежит номер телефона, то обычно смотрим на его DEF код. Например, если номер начинается на 916, то это МТС, на 968 – Билайн, 926 – Мегафон (все зависит от вашего региона). Но этот метод очень условный и совершенно не подходит когда нужны точные данные. В реальности все сложнее: DEF коды часто делят между собой несколько операторов, и совсем необязательно, что искомый номер относится к операторам большой четверки. Ну и наконец, номер можно просто портировать.
В статье я расскажу о том, как по номеру телефона достоверно определить мобильного оператора который его обслуживает, а также получить дополнительную, «бесплатную» информацию – домашний регион абонента. Использовать эти данные можно как угодно, начиная от предзаполнения адреса в анкете пользователя и перенаправления на региональную версию вашего сервиса, до использования этих данных в процессинге и статистике. В конце статьи будет ссылка на github с исходниками.
Сразу оговорюсь, что домашний регион абонента, по большому счету, никак не связан с текущим месторасположением пользователя, т.е. определяемый регион отвечает на вопрос «Откуда номер?», а не «Где пользователь?».
Источники данных
Россвязь
Свой номер телефона мы получаем когда заключаем договор на обслуживание с оператором связи. В свою очередь, распределением диапазонов номеров между операторами связи, а также стандартизацией и общим контролем за услугами связи занимаются соответствующие государственные и международные организации. В России такой организацией является Федеральное агентство связи (Россвязь).
Таким образом, самым надежным источником информации кто обслуживает российский номер телефона является Россвязь, причем это открытые данные, которые агентство публикует у себя на сайте: www.rossvyaz.ru/opendata. Свежий список диапазонов мобильных номеров находится в CSV по ссылке. Каждая строка в файле выглядит как:
DEF-код, начало диапазона, конец диапазона, название оператора, название региона
Однако, с 2013 года появилась возможность переносить номер от оператора к оператору. Значит, руководствуясь только реестрами Россвязи, нельзя однозначно сказать, что номер обслуживается определенным оператором. Зато это вполне можно сказать про регион, ведь переносимость номера работает только в рамках домашнего региона и перенести номер из МТС Новосибирск в Tele2 Санкт-Петербург не получится в принципе.
Таким образом, если по задаче нужно определить только регион пользователя, то реестров Россвязи будет достаточно.
База Данных Перенесенных Номеров
Структура этой базы крайне проста: это три CSV файла в которых в формате «номер, название оператора» перечислены:
Суммируя: у нас есть некие диапазоны номеров, которые соответствуют определенным операторам и регионам (Россвязь), и список номеров-исключений из этих диапазонов (БДПН), который распространяется только на название оператора.
Как определять абонентов
Самое очевидное решение этой задачи: посмотреть на слово «диапазон» и использовать перечисленные емкости буквально. Т.е. для определения номера, сортируем всех операторов по их диапазонам и ищем запись, которая относится к минимальному диапазону, в который попадает конкретный номер. Сложность этого алгоритма будет как у бинарного поиска, что довольно неплохо.
Но есть более оригинальный и универсальный способ реализации, сложность которого – константа, независимо от размера данных. Этот метод предполагает использование масок номеров.
Маска номера
Маска номера – это строка состоящая из цифр и спецсимвола со значением «wildcard одиночного символа» («?»), который говорит, что на его месте может быть любая цифра. Причем после знака вопроса может стоять только знак вопроса.
Таким образом, один из диапазонов Билайн в Москве «79031000000 – 79031999999», в виде маски будет записан как «79031. ».
С такими масками очень удобно работать, например, задавать их вручную в конфигурации. Кроме того, представление диапазонов в виде масок дает возможность использовать более эффективные методы хранения и простые алгоритмы поиска.
Хеш-таблица
Например, один из таких алгоритмов это хранение соответствий «маска-оператор» в хеш-таблице (или любом другом key-value хранилище). Суть алгоритма в следующем: все подобные маски складываются в хеш-таблицу, где они являются ключами. Значениями в таблице являются объекты-операторы с регионами.
Работу поиска нагляднее всего объяснить на примере. Скажем, мы ищем информацию по номеру: 7(903)100-1234, и у нас есть маска 79031. – Билайн, Москва.
Сперва ищем в таблице запись по ключу в точности как исходный номер: 79031001234.
Если не найдено, то меняем последнюю цифру номера на «?» и ищем по ключу 7903100123?.
Если опять ничего не нашли, то снова меняем последнюю цифру на «?» и ищем по 790310012. и так далее.
В конце концов мы сделаем поиск по ключу 79031. и обнаружим, что номер относится к оператору Билайн, Москва.
Видно, что в данном случае сложность алгоритма равна сложности нескольких взятий из хеш-таблицы, что при правильной реализации обычно равно константе. Сложность поиска в таком дереве зависит от длины телефонных номеров, которая по рекомендации ITU-T E.164 не превышает 15 символов.
Этот же алгоритм можно применить и к портированным номерам – их можно просто добавить в ту же самую хеш-таблицу.
Префиксное дерево
Гораздо более эффективный по производительности метод – построение префиксного дерева из масок, который будет опираться на то, что номера состоят из цифр. Каждая нода этого дерева сможет иметь до 10 цифровых нод-потомков (0-9) и одной wildcard-ноды. Wildcard-нода может иметь только wildcard-потомков. При добавлении очередной маски в дерево, каждый символ маски последовательно превратится в ноду. Таким образом, фактически мы представляем все имеющиеся у нас маски в виде одного дерева.
Например, дерево состоящее из масок: 7913? – Mno1 791?? – Mno3 7952 – Mno2 7953 – Mno3 795? – Mno1 будет иметь вид, как на картинке (перечисленные маски в дереве идут слева направо). |
Алгоритм поиска в дереве, думаю, уже понятен: берем по порядку каждую цифру из искомого номера и последовательно спускаемся по дереву начиная с корня. В первую очередь спускаемся по цифровым нодам, если цифровых нод нет, то смотрим есть ли «?»-нода. Если есть, то в конечном итоге проверяем длину маски, и если она соответствует номеру, то оператор найден.
Заключение
В зависимости от ограничений, можно комбинировать эти подходы и разделять хранилища перенесенных номеров и масок Россвязи. Например, по памяти выгоднее для портированных номеров использовать подход с хеш-таблицей, а для реестров Россвязи всегда выгоднее использовать дерево масок. При поиске сначала смотреть в таблице, а если в ней ничего не найдено, то искать в дереве. Разделение хранилищ в первую очередь удобно для их автообновления, т.е. если изменилась БДПН (а она меняется постоянно), то совсем необязательно перечитывать диапазоны Россвязи.
Для максимальной производительности можно хранить всю информацию прямо в оперативной памяти. В моей реализации на Java, дерево масок Россвязи занимает не более 20-30Мб, хеш-таблица с масками портированных номеров: около 500-600 Мб. Если же портированные номера хранить в префиксном дереве, то из-за того, что ноды дерева получаются очень разреженные, памяти потребуется примерно в 1.5 раза больше. Но зато, это дает достаточно весомый прирост производительности.
Коды сотовых операторов
Таблица кодов сотовых операторов России на 2021 год. Поиск оператора по коду и региону.
Список кодов
Список задействованных мобильных кодов:
Оператор и регион по номеру телефона:
Из 100 возможных кодов сотовой связи задействовано 79 и свободно 21.
Свободные коды: 907, 935, 940, 942, 943, 944, 945, 946, 947, 948, 949, 957, 959, 972, 973, 974, 975, 976, 979, 990, 998. Они находятся в резерве и не принадлежат пока ни одному оператору.
Операторам «большой тройки» принадлежат целые серии номеров:
Смотрите также коды операторов по регионам и коды других операторов:
Сотовые операторы России
В 2021 году по данным Россвязи зарегистрировано более 80 компаний, предоставляющих услуги сотовой связи на территории России. Многие операторы сотовой связи в России являются публичными и предоставляют услуги связи населению на коммерческой основе. Любой гражданин может стать их клиентом. Малочисленные операторы созданы исключительно для обеспечения сотовой связи между сотрудниками государственных организаций и учреждений. Рядовой гражданин не может стать их клиентом.
Выделяются четыре крупных оператора сотовой связи: МТС (Мобильные ТелеСистемы), Билайн (Вымпел-Коммуникации), Мегафон, Теле2 (Т2-Мобайл). Они имеют наибольшее число абонентов и работают во всех регионах страны (Теле2 работает в большинстве регионов). В отдельных регионах страны покрытие предоставляется за счет аренды сети местных операторов. В двухтысячных годах было популярным название «большой тройки» (МТС + Билайн + Мегафон), в последние года чаще используется понятие «большой четвёрки», в которую вошла Теле2.
В настоящий момент владельцем Tele2 Россия является компания Ростелеком.
В конце 2017 года добавился новый оператор сотовой связи Тинькофф Мобайл. Оператор создан в партнёрстве с Теле2: работает как виртуальный оператор и использует техническое оснащение Теле2. Оператор имеет отношение к Тинькофф Банку и активно им рекламируется.
В 2018 году заработал СберМобайл — сотовый оператор от Сбербанка. Лицензии были получены ещё в 2016 году, фактически же реклама началась в 2018 году, услуги оператора стали доступны любому россиянину.
Популярные сотовые операторы
К популярным сотовым операторам мы относим: 1) операторов с наибольшей базой абонентов, 2) операторов, часто рекламирующихся и активно наращивающих базу абонентов.
Бренд | Логотип | Кол-во абонентов* | Сайт | Компания (юридическое лицо) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
МегаФон | 29% (76 млн) | www.megafon.ru | ПАО «Мегафон» | ||||||||||
Билайн | 21% (54,3 млн) | www.beeline.ru | ПАО «ВымпелКом» | ||||||||||
МТС | 30% (78,8 млн) | www.mts.ru | ПАО «МТС» | ||||||||||
Ростелеком | (45,9 млн) | tele2.ru | ООО «Т2 РТК Холдинг» | ||||||||||
МТТ |
Оператор | Код |
МТС | 902, 904, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 950, 978, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989. |
Билайн | 900, 902, 903, 904, 905, 906, 908, 909, 950, 951, 953, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 980, 983, 986 |
Мегафон | 902, 904, 908, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 936, 937, 938, 939, 950, 999 |
Йота | 958, 999 |
Теле2 | 900-902, 904, 908, 950-953, 958, 977, 992, 994, 996, 999 |
Стоит сказать, что данные комбинации цифр не могут дать пользователю какой-либо точной информации, связанной с геолокацией другого абонента: к примеру, def-код (996) предназначен для примерно 40 регионов нашей страны, в которых представлены услуги Yota.
Также некоторые из представленных серий делятся между операторами «Большой тройки» и региональными поставщиками связи, то есть, например, обладатель номера +7 (900) ХХХ-ХХ-ХХ может быть абонентом как Теле2, так и Екатеринбургского «Мотива».
Для идентификации входящего вызова следует обращать внимание не на первые 3 цифры, а на первые 5 (иногда даже 7) — в таком случае регион поиска значительно сузится, и пользователь сможет найти хотя бы примерные сведения о местоположении вызывающего его абонента.
Конечно, вряд ли кто-либо получит удовольствие от ручного скролла длинного списка из пятизначных чисел, поэтому для быстрого и качественного определения локации по номеру мобильного стоит использовать специальные онлайн-сервисы (RegionOperator или IndexMain.ru).
Можно ли получить данные о владельце номера
Намерение ”пробить” личные данные владельца номера бывает продиктовано разными причинами – от желания отследить вторую половину до обеспечения собственной безопасности. Создатели недобросовестных сервисов пользуются этим ради получения контактов и денег пользователей. На их сайтах можно увидеть обещания распознать не только имя, фамилию, адрес прописки, но и даже местоположение звонящего. Подобные заявления пусты и являются признаками мошенников.
Получить полные данные хозяина номера телефона законным путем можно только от правоохранительных органов при расследовании уголовного дела.
Легальные способы, как проверить самостоятельно, кому может принадлежать номер мобильного:
Все описанные действия не гарантируют успеха в идентификации личности, на которую зарегистрирована сим-карта. Если они не дали результата, стоит оценить серьезность ситуации и необходимость поиска данных.
- как узнать какой оператор лучше ловит интернет на даче
- как узнать какой оператор офд подключен