как узнать какой сотовый оператор
Как определить мобильного оператора и домашний регион по номеру телефона
Когда мы пытаемся определить какому оператору принадлежит номер телефона, то обычно смотрим на его 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 раза больше. Но зато, это дает достаточно весомый прирост производительности.
Три быстрых способа определить мобильного оператора и регион абонента
Мне часто звонят с незнакомых номеров. Уверена – такое случается не только со мной. Многие звонки связаны с работой, но часто, перезванивая, я натыкаюсь на спам. Поэтому мне проще сначала проверить откуда звонили, а уже потом перезванивать.
Конечно, я как и все, смотрю на первые цифры в номере и по ним пытаюсь понять, кто оператор. Логика простая: когда номер начинается на 921, то это Мегафон, 960 – Билайн, 911 – МТС и так далее.
Но эта схема работает только в домашнем регионе и далеко не всегда – сегодня многие абоненты с легкостью переходят от одного оператора к другому с сохранением номера, да и некоторые DEF коды часто используют разные операторы.
Когда сталкиваюсь с номерами из других регионов, то вообще начинается путаница. К примеру, код Мегафона 922 используется в 11 регионах России. Я нашла несколько простых способов, которые помогают определить мобильного оператора и регион абонента с высокой точностью.
Проверка номера на сайте Центрального научно-исследовательского института связи
На сайте института связи есть сервис, с помощью которого можно посмотреть, к какому оператору относится номер. Система определяет даже портированные номера – те, которые пользователи переносили от одного оператора к другому.
Но если стоит задача выяснить из какого города поступил звонок, то этот сервис вряд ли поможет. На сайте ЦНИИС можно определить только оператора.
Сервис для проверки от Мегафона
Бесплатный сервис Мегафона для определения телефонных кодов операторов. Корректно определяет принадлежность к оператору и региону. С портированными номерами тоже нет проблем.
Проверяла на своем старом номере, который я когда-то переносила с Мегафона на Билайн.
“ Кто звонит ” – приложение для iOS от российских разработчиков. Более информативный способ получить данные об абоненте. Вводишь в главном окне номер и получаешь полноценный отчет – регион, оператор и отзывы о номере от других пользователей. Сомнений, что они настоящие, нет.
Если правильно настроить приложение, то номера будут определяться во время входящего вызова. Удобная программа, но платная – 379 рублей.
Есть лайфхак для бережливых – онлайн-сервис » Кто звонит «. Там можно бесплатно смотреть отзывы о номерах.
Пишите свои способы определения телефонных номеров! Всем удачи
Сотовые операторы России
В России среди сотовых операторов выделяются три компании — МТС, Мегафон, Билайн. Они имеют наибольшее число абонентов. Остальные сотовые операторы имеют значительно меньше клиентов и представлены только в отдельных регионах РФ. Популярными операторами, но не входящими в «большую тройку», можно назвать Tele2, Ростелеком, Смартс. Общее число действующих операторов сотовой связи в России составляет более сотни. Некоторые региональные операторы являются дочерними организациями крупных российских компаний. Например, «Вотек Мобайл» в Туле и «Белгородская Сотовая Связь» принадлежат Tele2.
Ниже перечислены все коды, используемые сотовыми операторами РФ. По каждому коду имеется детальная информация: операторы, регионы, год ввода.
Что представляет из себя номер сотового телефона? Согласно телефонному плану нумерации Российской федерации коды сотовых операторов представлены трехзначным числом, начинающегося с 9. После кода следует семизначный номера абонента.
Общий вид кода: 9xx
Общий вид телефонного номера: +7 9хх ххх-хх-хх
Коды сотовых операторов называют негеографическими телефонными кодами или def-кодами. Сотовым компаниям выделен определенный код (или несколько кодов) и диапазон номеров для абонентов.
Кроме того, для «мобильной тройки» выделены целые серии кодов, имеющих одинаковую вторую цифру:
92x, 93x — Мегафон
91x, 98x — МТС
96x — Билайн
Таким образом, если вам звонят с номера, начинающего, например, на +7 92. то вы можете быть уверены, что звонят с Мегафона. В разных регионах один и тот же сотовый оператор может располагать разным диапазоном номеров. Например, код 905 и номер из диапазона 2500000-2899999 принадлежит Билайну (ОАО «Вымпел-Коммуникации») по Санкт-Петербургу, а код 905 и диапазон 1830000-1849999 — тоже Билайн, но уже по Ульяновской области.
Нумерация def-кодов со временем претерпевала изменения. Одно из изменений связано с переходом сотовых компаний из географических кодов (4xx) в зону негеографических кодов (9xx). Так, в Москве МТС перешла с 495 на 985, Мегафон — с 495 на 925. Таким образом, коды 925 и 985 в настоящее время дублируют прямые московские номера. Другое изменение связано с освобождением оператором одних кодов и переход на другие. Например, оператор МТС в 2002 и 2003 годах перешел с 902 на привычные сейчас 910, 912, 916.
Таблица соответствия есть для каждого кода (список кодов представлен на этой странице чуть выше). Однако после отмены «мобильного рабства» нельзя будет однозначно ответить на вопросы «какой оператор с кодом 903?», «код 910 какого оператора?» и подобные.
Популярные операторы
В таблице ниже показаны коды, названия компаний и регионы, в которых работают популярные операторы России.
Билайн
МТС
прямые московские номера, старый код 495
Мегафон
прямые московские номера, старый код 495
Tele2 (Теле2)
Отдельная серия номеров с кодом 999 принадлежат Ростелекому, МАТРИКС телеком, МИТ-ТЕЛ
У крупных сотовых операторов в некоторых густонаселенных регионах России имеется несколько кодов. ffЕсли говорить о систематизации кодов относительно их распределения по регионам, то четкого структурного распределения не наблюдается, однако у отдельных компаний прослеживается «порядок». Так, коды 921 и 931 используются Мегафоном в Калининградской области и северных регионах, 936 и 926 — в Москве. В то же время у Билайна код 903 используется во многих регионах и явной систематизации по паре код-регион не прослеживается.
Новые способы узнать, какой оператор на номере.
Какой оператор на номере который я набираю? Именно этот вопрос будет набирать актуальность MNP в России. В этой статье — способы узнать принадлежность сегодня.
На сегодня в интернете полно сайтов, которые предлагают своим посетителям узнать по номеру телефона какому оператору он принадлежит, но все они дают не совсем достоверную информацию. Дело в том, что 1 декабря 2013 года был принят закон о возможности перевода номера мобильного телефона на обслуживание от одного оператора к другому, и многие клиенты стали переводить номера от одного оператора к другому. Кстати, уже был один крупный судебный процесс на эту тему между МегаФоном и МТСом по поводу перевода номеров Совета Федерации, насколько я помню, победил МегаФон.
В связи с этим возникает путаница, если раньше номер принадлежал Билайну, а затем стал принадлежать МТСу, то как же узнать, кому на самом деле сейчас принадлежит номер? Старые базы данных будут по прежнему показывать что номер принадлежит Билайну, но если мы на него позвоним, то звонок будет тарифицироваться по стоимости звонка на МТС, что может составлять существенную разницу, особенно при междугородных звонках.
Я уже писал статью на тему, что такое MNP, в этой статье подробно останавливаться не вижу смысла.
Какой оператор на сегодня обслуживает номер?
Вопрос этот очень даже актуален, так как число переходов между операторами будет расти, и через какое-то время, теоретически, номера перемещаются, для старых систем проверки номера настанет хаос. Они будут показывать совершенно неправильные данные, и, скорее всего, будут заменены. Но что делать, если узнать принадлежность номера оператору нужно уже сегодня?
Я нашел несколько способов проверки какому оператору принадлежит номер.
МегаФон одним из первых операторов начал перевод абонентских номеров. У него же есть и сервис проверки принадлежности номера. Доступен сервис на официальном сайте оператора, либо можно набрать прямой адрес:
Узнать какой оператор обслуживает номер
Сам по себе сервис проверки принадлежности очень прост: записываете номер телефона начиная с 9 и нажимаете «Проверить»:
Проверить чей номер
Узнать оператора по номеру телефона можно на специальном сайте:
Узнать оператора по номеру телефона
Аналогичная очень простая форма для проверки:
Узнать какой оператор
Какой оператор через билайн
Какой оператор билайн
Компания Теле2 не отстает от своих конкурентов, на сайте компании Вы тоже сможете найти сервис по проверки принадлежности номера:
какой оператор теле2
Узнать оператора по номеру телефона через теле2
Наверняка в интернете имеются или будут когда-нибудь размещены и другие сервисы, которые предлагают своим посетителям определить оператора по номеру телефона, но я Вам рекомендую пользоваться официальными источниками. Напоследок я подготовил небольшое видео, которое демонстрирует принцип работы данных систем.
Видео достаточно лаконичное, дабы не загружать Вас лишней информацией.
Если Вы нашли неточности в описании или Вам есть что добавить — прошу оставить комментарии ниже.
Как определить оператора по номеру телефона?
Пользователи интернет-проекта «Будь мобильным» часто обращаются в редакцию с вопросами: «Как узнать оператора мобильной связи по номеру телефона?» или «Как определить регион или город, из которого мне звонили?». Мы решили помочь всем нашим читателям.
Ни для кого не секрет, что МТС, «Билайн», «Мегафон», Tele2, МОТИВ и другие сотовые компании России устанавливают разные цены в зависимости от того, на номер какого оператора совершается звонок. На тарификацию влияет и регион, куда звонит абонент. И если ранее определить оператора можно было по первым трём цифрам, то сейчас ситуация значительно усложнилась.
С 1 декабря 2013 года в России официально отменили «мобильное рабство». С этого времени любой абонент получил возможность смены одного оператора мобильной связи на другого с сохранением своего старого номера.
Группа разработчиков Mobile Technology Software выпустила сервис проверки оператора и региона по номеру телефона. Он определяет оператора, регион и населённый пункт (только для городских номеров) по номеру телефона.
Как это работает?
Сначала сервис проверяет наличие указанного номера в базе Россвязи (этот орган отвечает за выдачу телефонных номеров разным операторам в России). Далее программа обращается к базе перенесенных номеров от ЦНИИС (отвечает за сопровождение базы с данными о переносе номеров от оператора к оператору без изменения номера). Таким образом, полученная информация актуализируется автоматически.
Как проверить номер телефона?
Для того, чтобы осуществить проверку нужно ввести номер телефона или код города. Определение оператора и региона доступно как для мобильных, так и городских номеров Российской Федерации.
Сервис также позволяет определять наименование и контактную информацию организаций и юридических лиц, на которые зарегистрированы телефонные номера.