Как узнать оператора

Как определять принадлежность номера?

Итак, вы увидели незнакомый номер на экране телефона. Если он начинается с +7, значит, вам звонили из России, так как под огромную территорию нашей страны отведен только этот международный код.

Далее обратите внимание на следующие после +7 три цифры. Они называются префикс — трехсимвольное обозначение, которое служит для разделения базы телефонных номеров между операторами связи и по географическому признаку. Также префикс называют DEF-кодом. Именно по нему проводят проверку принадлежности номера к определенному оператору.

В нашей стране все операторы имеют префиксы от 900 до 999. Существуют общеизвестные префиксы, например, практически все знают, что 926 — это «Мегафон» Москвы, 916 — МТС Москвы, а 999 — Yota. У «Билайна» региональные привязки не такие четкие, однако префиксы 903, 905, 960 хорошо узнаваемы.

Расскажем подробнее, под какими кодами работают крупнейшие сотовые операторы России — это всем известная «большая тройка», а также примыкающие к ней Tele2 и Yota.

МТС

Определить оператора МТС легко по номерам с префиксом в диапазоне от 910 до 919 — такие номера у давно зарегистрировавшихся абонентов. Новые абоненты МТС имеют код от 980 до 989.

С региональными привязками у этого оператора довольная четкая система:

  • 911 — Северо-западный регион;
  • 912, 982 — Урал;
  • 913, 983 — Сибирь;
  • 914, 984 — Дальний Восток;
  • 916, 985 — москва и область;
  • 918 — юг и Северный Кавказ;
  • 987 — Приволжский федеральный округ и т.д.

Билайн

Оператор «Билайн» работает под известными кодами 903-909 (давно зарегистрированные абоненты), а диапазон от 960 до 976 отдан зарегистрированным в последние 3-5 лет абонентам. У этого оператора нет строгой привязки def-кодов к регионам, они работают во всех регионах, поэтому определить только по трем цифрам, откуда звонят, невозможно.

Мегафон

Этому оператору принадлежит целых 20 префиксов. Самые «старые» из них относятся к диапазону от 920 до 928, а более новые — от 929 до 937.

Самые популярные префиксы оператора:

  • 920 — Центр и Приволжье;
  • 921 — Северо-Запад;
  • 922 — Урал;
  • 923 — Сибирь;
  • 924 — Дальний Восток;
  • 925, 926 — Москва и МО;
  • 929 — все регионы.

Tele2

Один из самых молодых и перспективных российских операторов связи работает с кодами 900, 901, 902, 908, 953, 958 (для всех регионов), 904, 950, 951, 952, 991, 992, 993-999. Легко определить абонента Теле2 из Москвы по коду 977, а для Санкт-Петербурга отведен код 991.

Yota

Этого оператора распознать легче всего — во всех регионах абоненты имеют префикс 999. Но будьте внимательны, эти же цифры может использовать Tele2 Костромской, Тамбовской, Ярославской областей.

Где проверить номер сотового телефона

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

Но если есть полный номер телефона, можно проверить, откуда вам звонили или писали. Для этого существует масса ресурсов и сайтов, где достаточно ввести номер телефона, и система выдаст вам компанию, управляющую номером.

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

Есть безопасный сайт Центрального научно-исследовательского института связи (легко найти в поисковых системах). Здесь также есть страница для проверки номера на принадлежность оператору. А еще это учреждение занимается администрированием базы данных перенесённых абонентских номеров, то есть учитывает всех, кто перешел от одного оператора к другому с сохранением номера.

Это интересно — статистика переходов

По данным Министерства связи и массовых коммуникаций, на конец 2016 года технологией MNP воспользовались 4,744 млн человек. Причем от «Мегафона» ушло больше всего абонентов (1,466 млн), следом идет МТС (1,344 млн), «Билайн» (947 тыс.) и Tele2 (458 тыс.). Довольно внушительное количество абонентов (860 тыс.) покинуло небольших операторов «Скартел», «Мотив», «Скайлинк» и прочих.

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

Приток на начало 2017 года был таким:

  • «Билайн» зарегистрировал 1,27 млн абонентов (то есть остался в выигрыше на 410 тыс. абонентов);
  • МТС — 1,199 млн (потеря 145 тыс. абонентов);
  • «Мегафон» — 1,187 млн (потерял больше всех на тот момент — 279 тыс. абонентов);
  • Tele2 — 880 тыс. (тоже выиграл 422 тыс. абонентов).

Самая свежая статистика по перенесенным номерам (из-за которых теперь и невозможно точно установить оператора связи по номеру телефона) приведена на сайте ФГУП ЦНИИС (Центрального научно-исследовательского института связи»).

По состоянию на сентябрь 2018 года, подано 17,1 млн заявок на перенос номера, из них уже выполнен перенос 9,7 млн номеров. Ежедневно операторы регистрируют порядка 20 тысяч новых заявок на перенос номера.

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

Кстати, при проверке номера важно знать наименования юридических лиц операторов. Если при поиске оператора по номеру мобильного телефона выйдет результат ПАО «Вымпелком», это всем известный желто-черный оператор «Билайн». А ПАО «Мобильные телесистемы», как нетрудно догадаться, это оператор МТС. И только с «Мегафоном» не возникнет трудностей идентификации, ведь бренд и наименование юридического лица совпадают.

Трудности определения

С 2014 года отменили так называемое «мобильное рабство», то есть абоненты получили возможность переходить от одного оператора к другому с сохранением номера и тем самым выбирать для себя лучшие условия без потери мобильного номера.

Во всем мире эта технология носит название MNP — mobile Number portability. C одной стороны, абоненты получили свободу выбора оператора и тарифов, с другой стороны, такой переход приводит к некоторым неудобствам.

Во-первых, системы тарифов операторов претерпели изменения, ведь потеряли смысл дешевые звонки внутри сети — как узнать, у каких абонентов из списка контактов настоящий «Мегафон» или МТС? Ведь даже если у них префиксы 927 или 917, они могли перейти к другим операторам по MNP.

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

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

Как определить мобильного оператора и домашний регион по номеру телефона

Когда мы пытаемся определить какому оператору принадлежит номер телефона, то обычно смотрим на его DEF код. Например, если номер начинается на 916, то это МТС, на 968 – Билайн, 926 – Мегафон (все зависит от вашего региона). Но этот метод очень условный и совершенно не подходит когда нужны точные данные. В реальности все сложнее: DEF коды часто делят между собой несколько операторов, и совсем необязательно, что искомый номер относится к операторам большой четверки. Ну и наконец, номер можно просто портировать.
В статье я расскажу о том, как по номеру телефона достоверно определить мобильного оператора который его обслуживает, а также получить дополнительную, «бесплатную» информацию – домашний регион абонента. Использовать эти данные можно как угодно, начиная от предзаполнения адреса в анкете пользователя и перенаправления на региональную версию вашего сервиса, до использования этих данных в процессинге и статистике. В конце статьи будет ссылка на github с исходниками.
Сразу оговорюсь, что домашний регион абонента, по большому счету, никак не связан с текущим месторасположением пользователя, т.е. определяемый регион отвечает на вопрос «Откуда номер?», а не «Где пользователь?».

Источники данных

Россвязь

Свой номер телефона мы получаем когда заключаем договор на обслуживание с оператором связи. В свою очередь, распределением диапазонов номеров между операторами связи, а также стандартизацией и общим контролем за услугами связи занимаются соответствующие государственные и международные организации. В России такой организацией является Федеральное агентство связи (Россвязь).
Таким образом, самым надежным источником информации кто обслуживает российский номер телефона является Россвязь, причем это открытые данные, которые агентство публикует у себя на сайте: www.rossvyaz.ru/opendata. Свежий список диапазонов мобильных номеров находится в CSV по . Каждая строка в файле выглядит как:
DEF-код, начало диапазона, конец диапазона, название оператора, название региона
Однако, с 2013 года появилась возможность переносить номер от оператора к оператору. Значит, руководствуясь только реестрами Россвязи, нельзя однозначно сказать, что номер обслуживается определенным оператором. Зато это вполне можно сказать про регион, ведь переносимость номера работает только в рамках домашнего региона и перенести номер из МТС Новосибирск в Tele2 Санкт-Петербург не получится в принципе.
Таким образом, если по задаче нужно определить только регион пользователя, то реестров Россвязи будет достаточно.

База Данных Перенесенных Номеров

Если нужно точно определять оператора, тогда не обойтись без Базы Данных Перенесенных Номеров, оператором которой является ЦНИИC. Процедуру подключения к базе можно найти у них на сайте: zniis.ru. Но, к сожалению, насколько я знаю, напрямую подключиться к ним не просто, а получив подключение, делиться базой ни с кем нельзя.
Структура этой базы крайне проста: это три CSV файла в которых в формате «номер, название оператора» перечислены:

  • все перенесенные номера на текущий день (обновляется раз в день);
  • все перенесенные номера за последний час (обновляется раз в час);
  • все номера возращенные родному оператору обратно за последний час (обновляется раз в час).

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

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

Самое очевидное решение этой задачи: посмотреть на слово «диапазон» и использовать перечисленные емкости буквально. Т.е. для определения номера, сортируем всех операторов по их диапазонам и ищем запись, которая относится к минимальному диапазону, в который попадает конкретный номер. Сложность этого алгоритма будет как у бинарного поиска, что довольно неплохо.
Но есть более оригинальный и универсальный способ реализации, сложность которого – константа, независимо от размера данных. Этот метод предполагает использование масок номеров.

Маска номера

Маска номера – это строка состоящая из цифр и спецсимвола со значением «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 раза больше. Но зато, это дает достаточно весомый прирост производительности.
Спасибо за внимание!
→ Весь исходный код доступен на github.

Как определить оператора по номеру мобильного телефона

Мобильный номер состоит из следующих элементов:

  • кода страны (для Беларуси «+375»);
  • префикса (двузначного зонального кода и однозначного внутризонового кода);
  • шестизначного идентификационного номера абонента.

Таким образом, чтобы определить по номеру, какому мобильному оператору он принадлежит, надо определить первые две или три цифры полного телефонного номера.

Инфографика Максима Данилюка

Сейчас в Беларуси действуют всего три мобильных оператора Velcom, МТС, life:). Оператор сотовой связи Diallog (компания БелСел) с 24 января 2014 года прекратил предоставление услуг голосовой сотовой связи и Интернета.

У Velcom два зональных кода: «29» и «44». С первого начинаются номера на «1», «3», «4», «6» и «9». Со вторым кодом обычно используются номера на «4», «5» и «7».

У МТС также два зональных кода: «29 и «33». Код «29» совпадает с аналогичным зональным кодом Velcom, поэтому при определении номера телефона необходимо руководствоваться значением внутризонового кода. Для «29» это «2», «5», «7» и «8». Внутризоновым кодом для номеров «33» обычно является «3», «6» и «9».

Зональным кодом номеров оператора life:) является «25». Внутризоновым кодом могут выступать любые цифры, однако обычно в качестве данного значения используются «5», «6», «7» и «9».

Помимо трех мобильных операторов, на рынке сотовой связи также действует и компания «Белтелеком», которая предоставляет специальную услугу «Максифон». Подключившись на «Максифон», пользователь получает реальный телефонный номер из номерной емкости телефонной сети «Белтелеком» в формате «+375-24-4-хх-хх». Специфика данной услуги заключается в том, что пользователь совершает свои звонки через Интернет.

После введения в 2012 году в Беларуси услуги «Перенос номера» по коду уже нельзя точно определить мобильного оператора, которому принадлежит номер. Но, учитывая крайне низкую популярность этой услуги, вероятность точно определить оператора исходя из описанной выше схемы по коду близка к 100%.

Как найти какому оператору принадлежит номер сотового телефона

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

В прошлом году введена услуга сохранения данных при переходе на обслуживание другим провайдером. Например, абонент Билайн мог стать пользователем Теле 2, оставив при этом префикс Билайна. Поэтому система поиска может работать несовершенно, ведь проверить, совершил человек переход с одного оператора связи на другой, сложно. Сами компании могут не вести учет о переходах, тем более такие данные не сохранены и в поисковиках. Проверка через подобные приложения может быть безрезультатной.

Коды и префиксы самых крупных сотовых операторов России

Наша страна имеет всего 4 крупные компании, оказывающие услуги мобильной связи. Узнать номера сотовых операторов России можно, взглянув на трехзначный код, который индивидуален при выдаче SIM-карты каждой компании. Поэтому возможность предоставлять информацию, чей это абонент, занимает немного времени. Системная информация проверяется за доли секунды, достоверность же результата зависит от того, проводилась ли смена провайдера. Если смены не было, то данные не менялись, поэтому могут использоваться как достоверные.

Мегафон

Для Мегафона характерны следующие серии: 920-932, 933, 938. Комбинации цифр разные для отдельных регионов, например, в Москве это 925, а в Кировской области 922. Помимо этого, Мегафон предоставляет серию 929 и 997. Оператор мобильной связи делится сериями телефонов с МТС и Билайн. Каталог кодов закладывается внутрь анализирующих систем, используясь потом при проверках.

Мобильные ТелеСистемы (МТС)

Для МТС характерны следующие серии: 910-919, 980-983, 988. Эти цифры помогают узнать, где возможно приобрести SIM-карту. Для Москвы используется 910, а для Сибири 913, 983. У МТС существует особенность распределения префиксов между городами, например, после кода характерными московскими являются цифры от 0 до 4, а петербургскими от 0 до 2 или от 7 до 9. Остальные числа принадлежат другим областям и городам.

Билайн

Для Билайна после международного кода характерны серии: 903, 905-906, 909, 960-965, 967. Здесь коды привязаны к субъектам страны, при проверке система выдаст название компании с регионом. Для Москвы характерны серии 903, а для Дальнего Востока 964. У Билайна градация отличается только на территории Дальнего Востока. Все префиксы могут использоваться внутри государства, а Дальневосточному округу предназначена уникальная комбинация цифр. Такое преимущество округ получил из-за размеров территории, количества населения, популярности мобильной связи.

Теле 2

Самый молодой провайдер, но уже имеющий свою базу кодов. Для Теле 2 характерны следующие префиксы: 900, 902, 904, 908, 950-953. У него имеются свои особенности – провайдера нет в некоторых субъектах страны, поэтому совпадение префиксов с данными показывает, что оказывает услугу местная компания, действующая на территории одной области или края. Узнать информацию помогут все те же бесплатные сервисы, которые наглядно продемонстрируют, откуда совершался звонок, обозначат это место на карте.