Как определить мобильного оператора и домашний регион по номеру телефона
Когда мы пытаемся определить какому оператору принадлежит номер телефона, то обычно смотрим на его 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 раза больше. Но зато, это дает достаточно весомый прирост производительности.
Как определить оператора сотовой связи по номеру телефона
Когда при входящем звонке на экране мобильного телефона высвечивается незнакомый номер, это настораживает (помимо невозможности определить личность звонящего, абонент может опасаться списания средств со счёта). Некоторые тарифы мобильных операторов предусматривают платные входящие звонки (особенно при нахождении в роуминге), поэтому определение оператора по номеру телефона звонящего поможет избежать непредвиденных затрат. Чтобы определить оператора сотовой связи по номеру телефона, достаточно обратить внимание на специальный код в номере абонента, состоящий из трёх цифр и закреплённый за соответствующей компанией, предоставляющей услуги связи. На Refer Shop предлагаем подобрать чехлы для смартфонов.
Значение цифр в номере телефона
Номер любого оператора сотовой связи в России состоит из одиннадцати цифр, сгруппированных следующим образом:
Для удобства запоминания номера телефона, цифры записываются группами через пробел или дефис: «Код страны»-«Префикс»-«Диапазон»-«Собственный номер».
Префиксы операторов
На принадлежность мобильного номера сетевому оператору указывает префикс. Российские операторы используют префиксы от 901 до 997. Все значения запомнить трудно, но со временем можно неплохо ориентироваться в принадлежности самых популярных префиксов:
Номер префикса зависит от региона, но операторы постепенно переходят на единую нумерацию префиксов независимо от местонахождения филиала компании. Префиксы мобильных номеров зарубежных операторов можно узнать в таблице на соответствующих сайтах (например, bravo. odessa. ua/pref/).
Приложения для телефонов
Владельцы смартфонов могут установить специальные приложения на своё устройство — при входящем звонке программа определит сотового оператора и регион, в котором зарегистрирован номер. «Оператор Инфо» на момент написания статьи работает только с российскими мобильными и стационарными номерами. Другие два приложения способны определять сотовых операторов России, Белоруссии, Казахстана, Украины и Абхазии. Абоненты могут менять оператора связи, сохраняя при этом свой старый номер, что может затруднить определение актуального оператора при ответе на такой звонок.
Как узнать сотового оператора по номеру телефона
Во время недоступности сотовой сети на мобильный могут поступать звонки от неизвестных абонентов. Не переживайте из-за пропуска важного звонка, ведь существует вариант того, как узнать сотового оператора по номеру телефона. Полученные данные помогут не тратиться на связь с другим регионом или позволят проигнорировать следующий звонок незнакомца.
Можно ли определить оператора по номеру телефона
РФ имеет немного провайдеров мобильной связи и каждые обладают индивидуальными комбинациями цифр. Как узнать сотового оператора по номеру телефона? Легко. Если номер начинается на +7, тогда вам звонил абонент из России. В начале комбинации стоит другое число, значит это звонок из другой страны или региона. Зная коды разных стран, можно легко проверить, откуда звонят.
Помимо этого кода, следующие 3 цифры в мобильном обозначают принадлежность определенной компании связи. Зависит число от места продажи симок: купить SIM-карту с определенным префиксом допускается в конкретном регионе. Префикс провайдера уникальный для каждого региона, на его основе ведется поиск адреса субъекта. Индикатором определения принадлежности пользователя служат def-коды после кода страны. Они уникальны, всегда стабильны и фиксированы.
Как найти какому оператору принадлежит номер сотового телефона
Существует множество бесплатных сайтов, где просто, доступно выясняется, какой это оператор связи по номеру телефона. Их принцип работы заключается в том, чтобы ввести данные в специальную графу, нажать старт. Дальше система проанализирует введенную комбинацию цифр, выдав информацию. Некоторые службы запрашивают лишь первые 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. У него имеются свои особенности – провайдера нет в некоторых субъектах страны, поэтому совпадение префиксов с данными показывает, что оказывает услугу местная компания, действующая на территории одной области или края. Узнать информацию помогут все те же бесплатные сервисы, которые наглядно продемонстрируют, откуда совершался звонок, обозначат это место на карте.
Как узнать регион по номеру телефона
Любая мобильная система имеет свои комбинации цифр, которые зависят от того, в каком регионе человек купил симку. Это означает, что каждая комбинация кодов уникальна внутри определенного субъекта РФ. Сервисы, определяющие принадлежность пользователя, располагают этими данными, поэтому выдают информацию о крае или области, откуда звонил абонент. Узнать оператора по номеру телефона возможно из официальных сайтов компаний мобильной связи.
Популярный сервис проверки субъекта страны и абонента мобильной связи – GSM-inform. Для определения пользователя нужно ввести первые 5 цифр телефона. Воспользовавшись программкой Spravportal, вы сможете наглядно на карте увидеть, откуда звонили. Оба сервиса работают на безоплатной основе.
Три быстрых способа определить мобильного оператора и регион абонента
Мне часто звонят с незнакомых номеров. Уверена – такое случается не только со мной. Многие звонки связаны с работой, но часто, перезванивая, я натыкаюсь на спам. Поэтому мне проще сначала проверить откуда звонили, а уже потом перезванивать.
Конечно, я как и все, смотрю на первые цифры в номере и по ним пытаюсь понять, кто оператор. Логика простая: когда номер начинается на 921, то это Мегафон, 960 – Билайн, 911 – МТС и так далее.
Но эта схема работает только в домашнем регионе и далеко не всегда – сегодня многие абоненты с легкостью переходят от одного оператора к другому с сохранением номера, да и некоторые DEF коды часто используют разные операторы.
Когда сталкиваюсь с номерами из других регионов, то вообще начинается путаница. К примеру, код Мегафона 922 используется в 11 регионах России. Я нашла несколько простых способов, которые помогают определить мобильного оператора и регион абонента с высокой точностью.
Проверка номера на сайте Центрального научно-исследовательского института связи
На сайте института связи есть сервис, с помощью которого можно посмотреть, к какому оператору относится номер. Система определяет даже портированные номера – те, которые пользователи переносили от одного оператора к другому.
Но если стоит задача выяснить из какого города поступил звонок, то этот сервис вряд ли поможет. На сайте ЦНИИС можно определить только оператора.
Сервис для проверки от Мегафона
Бесплатный сервис Мегафона для определения телефонных кодов операторов. Корректно определяет принадлежность к оператору и региону. С портированными номерами тоже нет проблем.
Проверяла на своем старом номере, который я когда-то переносила с Мегафона на Билайн.
“ Кто звонит ” – приложение для iOS от российских разработчиков. Более информативный способ получить данные об абоненте. Вводишь в главном окне номер и получаешь полноценный отчет – регион, оператор и отзывы о номере от других пользователей. Сомнений, что они настоящие, нет.
Если правильно настроить приложение, то номера будут определяться во время входящего вызова. Удобная программа, но платная – 379 рублей.
Есть лайфхак для бережливых – онлайн-сервис » Кто звонит «. Там можно бесплатно смотреть отзывы о номерах.
Пишите свои способы определения телефонных номеров! Всем удачи
Как узнать оператора и страну по номеру телефона?
Если вам на телефон поступают звонки с незнакомых номеров, то лучше уточнить от какого оператора из какой страны с вами пытаются связаться абоненты. Особенно важно это, если вы хотите перезвонить незнакомцу. Существует несколько способов, которые помогут вам узнать оператора по номеру телефона.
Как узнать страну и оператора по номеру телефона
Стандартные возможности смартфонов позволяют без дополнительных программ узнавать, из какого региона вам проступил звонок. Однако, работает эта опция не для всех номеров и не каждый смартфон ее поддерживает. Поэтому можно использовать иные варианты:
Конечно лучше всего использовать онлайн способ. При поиске онлайн вам не нужно самостоятельно выделять из набора цифр код. Эта услуга для вас абсолютно бесплатна. Поисковая форма позволяет определить оператора связи и узнать другие подробности о номере.
Приложения для телефона, чтобы определить оператора по номеру
Ну а если вам недостаточно поисковой формы, то для смартфонов, работают на разных операционных системах, создана масса приложений для помощи в определении номеров и региона, откуда поступает вызов. Не так давно компания Яндекс создала собственный определитель, позволяющий узнать организацию, из которой поступил вызов. Но функционал этой программы ограничен – если компания использует сторонний номер телефона, например, мобильный одного из менеджеров, то вы не узнаете, кто хочет с вами связаться.
Неплохим приложением можно назвать утилиту «Операторы России». Она позволяет определить при входящем и исходящем вызове, какой оператор обслуживает вашего собеседника. Недостаток программы в том, что вы не сможете определить страну вызова. Базы данных ограничены пределами нашей страны.
Call Dispatcher
Более удачным по количеству справочной информации является приложение Call Dispatcher. Его базы данных собрали в себе сведения об украинских, белорусских и абхазских номерах. Функционал приложения позволяет:
После установки этой программы в директории карты памяти нужно обязательно создать папку Call Dispatcher, иначе базы данных загружены не будут. Только после создания папки необходимо приступать к скачиванию баз. Если вы их не загрузите, работать утилита не будет. Еще одна небольшая проблема при использовании этого программного продукта – не все операторы и номера вписаны в базы. Но эта неприятность редко затрагивает пользователей, так как базы данных регулярно пополняются.
Другие способы, позволяющие определить оператора связи
Если вы уверены, что звонок поступил к вам из России (номер начинается с кода +7), то достаточно определить оператора связи и регион использования симкарты. Для этого можно пользоваться разными способами.
Ручной поиск информации
Самый сложный способ определения оператора связи – использование справочника кодов. Каждый телефонный номер, кроме кода страны зашифровывает в себе идентификатор оператора. В России в его качестве используются числа в диапазоне от 900 до 999. На сегодня отечественные операторы задействовали 79 кодов из этого диапазона, еще 21 находится в резерве.
Большее количество идентификаторов заняли представители «большой тройки».
Таблица кодов операторов МТС, Мегафон и Билайн
| Название оператора | Количество занятых кодов | Коды |
| МТС | 25 | 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 |
| Мегафон | 24 | 902, 904, 908, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 936, 937, 938, 939, 950, 999 |
| Билайн | 24 | 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 он и вовсе бесполезен.
Получаем информацию о стране и операторе от своего оператора
Операторы связи дают самую точную информацию о своих абонентах. С декабря 2013 года в России действует закон о сохранении номера при переходе клиента в другую сотовую компанию. В связи с ним появляется путаница, если человек пытается самостоятельно по коду определить оператора. Но не обязательно действовать самому. Операторы связи предусмотрели возможность определить принадлежность абонентского номера.
Недостаток этого способа в том, что у некоторых операторов сервис платный. Еще один минус – найти форму проверки на официальном сайте непросто. В большинстве случаев она «спрятана» в одном из разделов в с информацией для абонентов.
Использование электронных кошельков
Если у вас есть электронный кошелек, то определить принадлежность номера к конкретному оператору связи можно с его помощью. Для этого выберите в списке платежей пункт «Внести деньги на счет мобильного», а затем введите номер. После этого действия на страннице появится название или логотип оператора. Совершать платеж не обязательно.
Самый простой способ узнать данные абонента
О последнем способе мы уже упоминали выше – это онлайн-сервисы для получения полной информации об абоненте. Вы сможете узнать не только оператора связи, но и регион приобретения симкарты. Это позволит вам быстро сориентироваться в важных вопросах: стоит ли перезванивать незнакомцу, сколько обойдется минута связи, можно ли совершить вызов, используя лишь включенный пакет минут своего тарифа.
Большинство операторов сейчас предлагают безлимитные звонки внутри сети. По этой причине узнать, услугами какой компании пользуется предполагаемый собеседник очень важно. Если абонент относится к вашему сотовому оператору и находится с вами в одном регионе, то чаще всего можно звонить не опасаясь.
Преимущество онлайн-базы в том, что она имеет удобный пользовательский интерфейс. Вам достаточно только ввести номер и нажать кнопку «Найти». После обновления страницы вы получите результат в виде подробного отчета. Небольшой недостаток в том, что информация в базе обновляется чуть позже, чем у оператора. Но с каждым днем сведения вносятся более оперативно.












