как узнать код города по номеру сотового телефона

Как узнать регион по номеру телефона — Все варианты

как узнать код города по номеру сотового телефона. region po nomeru mobilnogo. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-region po nomeru mobilnogo. картинка как узнать код города по номеру сотового телефона. картинка region po nomeru mobilnogo.

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

Коды операторов

Ниже представлены коды, закреплённые за федеральными операторами сотовой связи:

ОператорКод
МТС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
Теле2900-902, 904, 908, 950-953, 958, 977, 992, 994, 996, 999

Также некоторые из представленных серий делятся между операторами «Большой тройки» и региональными поставщиками связи, то есть, например, обладатель номера +7 (900) ХХХ-ХХ-ХХ может быть абонентом как Теле2, так и Екатеринбургского «Мотива».

Для идентификации входящего вызова следует обращать внимание не на первые 3 цифры, а на первые 5 (иногда даже 7) — в таком случае регион поиска значительно сузится, и пользователь сможет найти хотя бы примерные сведения о местоположении вызывающего его абонента.

Конечно, вряд ли кто-либо получит удовольствие от ручного скролла длинного списка из пятизначных чисел, поэтому для быстрого и качественного определения локации по номеру мобильного стоит использовать специальные онлайн-сервисы (RegionOperator или IndexMain.ru).

Коды регионов России

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

То же самое можно сказать и о стационарных телефонах: к примеру, код (416) является общим для городов Амурской и Архангельской областей.

Коды Мегафон в регионах

как узнать код города по номеру сотового телефона. 1. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-1. картинка как узнать код города по номеру сотового телефона. картинка 1.

Коды Билайн по регионам

как узнать код города по номеру сотового телефона. 222. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-222. картинка как узнать код города по номеру сотового телефона. картинка 222.

Коды МТС

как узнать код города по номеру сотового телефона. 33. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-33. картинка как узнать код города по номеру сотового телефона. картинка 33.

как узнать код города по номеру сотового телефона. 44. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-44. картинка как узнать код города по номеру сотового телефона. картинка 44.

Коды стран мира

Следующая таблица содержит телефонные коды, принадлежащие операторам из некоторых стран мира:

Афганистан701-708
Беларусь291-299
Вьетнам098, 977-979
Греция693, 694, 697, 699
Швейцария774, 790-798

Также каждая страна имеет собственный универсальный код доступа:

С подобных комбинаций начинается любой сотовый номер, а у каждой страны мира имеется конкретная последовательность цифр: таким образом, чтобы позвонить, например, в Великобританию пользователю обязательно придётся набрать 44 перед def-кодом и «корнем» номера.

Источник

Узнать регион по номеру мобильного, определение региона по номеру телефона, коды мобильных операторов

Очень часто возникает потребность узнать регион по номеру мобильного, звонившего с неизвестного номера, а еще и с неизвестного кода.

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

Добавить бота Регион по номеру мобильного в Telegram

Оставить комментарий

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

Как свами связаться?

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

Услуги хаkера на заказ! Взlоm почты / Взлоm Вконтакте / Одноклассников

Хотите узнать с кем общается Ваша половинка в интернете?
Желаете всегда быть в курсе дел Ваших конкурентов?
Нужно узнать секреты или поймать на лжи?
ВзLоmать страницу мужа / ВзLоmать страницу жены
Устранение негативных отзывов / Убрать отзыв с сайта
Устранение конкурентов—

Тогда наш сервис для Вас!

Так же осуществляем взLоm соц. сетей:
odnoklassniki/ Одноклассники
vkontakte / Вконтакте
mamba / сайт знакомств
facebook / фейсбук
и т.д.

— Разумные цены
— Кратчайшие сроки выполнения (не более дня)
— Соблюдается анонимность и конфиденциальность
— Пароль остается неизменным и хозяин почты
не заподозрит, что его почта просматривается
— Индивидуальный подход к каждому клиенту
— Работаем практически круглосуточно и БЕЗ выходных
— 50% скидки постоянным клиентам

РАСПЕЧАТКА СМС СООБЩЕНИЙ И ЗВОНКОВ
Удаление кредитной истории!
DDOS на сайты конкурентов

Также вернем Ваш ящик, если его взLоmали и поменяли пароль

БЫСТРО! КАЧЕСТВЕННО! ПРОФЕССИОНАЛЬНО!
Наш сервис — действительно лучший.

Не теряйте времени, пишите прямо сейчас.email: [URL=mailto:globolxack@gmail.com]globolxack@gmail.com[/URL]

как узнать код города по номеру сотового телефона. noavatar. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-noavatar. картинка как узнать код города по номеру сотового телефона. картинка noavatar.

Источник

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

как узнать код города по номеру сотового телефона. cccisyanqyvo hmmygsjj8qqeow. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-cccisyanqyvo hmmygsjj8qqeow. картинка как узнать код города по номеру сотового телефона. картинка cccisyanqyvo hmmygsjj8qqeow.

Полезно знать, какого телефонного оператора выбрал клиент и в каком регионе. Тогда можно разбить клиентскую базу географически и не звонить ночами. Или проводить промоакции вместе с операторами. А некоторые наши заказчики экономят: для каждого оператора выбирают самого дешевого СМС-агрегатора.

Поэтому «Дадата» с давних пор находит оператора по номеру телефона. Алгоритм простой — сделай и пользуйся. Разве что в 2013 году, когда отменили «мобильное рабство», пришлось чуть скорректировать процесс. В этой статье расскажу, как у нас все работает.

В процессе есть большая сложность — получить доступ к базе перенесенных номеров. Частным лицам его не выдают, да и компаниям придется тяжело. Об этом — в отдельном разделе.

Разбить телефонный номер на части

Первое, что нужно сделать, — разобрать телефон на три части:

Если не знать, какая часть номера из каких цифр состоит, дальше будет непросто. Выход — поставить маску, чтобы пользователи сразу вводили номера по частям. Или разбирать уже после, с задачей справится библиотека Google для работы с телефонами.

Найти оператора по номеру телефона, заглянув в план нумерации

Главный российский документ, согласно которому операторы получают телефонные номера, — это план нумерации Россвязи. В нем ясно прописали все расклады: какие коды и номера каким операторам в каких регионах принадлежат. Что приятно, справочник Россвязи свободно лежит на странице rossvyaz.ru/deyatelnost/resurs-numeracii/vypiska-iz-reestra-sistemy-i-plana-numeracii.

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

Внутри плана нумерации четыре файла: три для стационарных номеров и один — для мобильных. Разница между содержимым файлов заметна, если посмотреть на префиксы в названиях:

Номер +7 495 999-99-34 может быть прямым мобильным. А может быть, это офис покупает у сотового оператора фиксированную связь — знает только сам оператор.

Но я отвлекся, вернемся к плану нумерации. Внутри файлов все очень просто — таблица на шесть полей.

как узнать код города по номеру сотового телефона. image loader. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-image loader. картинка как узнать код города по номеру сотового телефона. картинка image loader.
Порядок полей таков: ABC- или DEF-код зоны, начало диапазона, конец диапазона, емкость, оператор, регион. Емкость — просто количество номеров, входящих в диапазон

Искать по плану нумерации регион и оператора — одно удовольствие.

Порой телефон не укладывается ни в один диапазон. Это значит, что номер неправильный. Исключений нет. На этом, надо сказать, прокалывается упомянутая библиотека Google — она одобряет внешне верный телефон, не сопоставляя с планом нумерации.

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

Теперь закон разрешает: меняйте оператора, сохранив номер. Но, внимание, только внутри региона. Нельзя вытащить телефон из региона, предусмотренного Россвязью. Как нельзя и «сломать» диапазоны распределения номеров. Поэтому, если интересен лишь регион телефонного номера, дальше можно не читать. А я продолжу и расскажу, как найти сменившие операторов номера.

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

Это шаг бюрократический, соответственно, самый сложный. А для большинства компаний и вовсе непроходимый, к сожалению.

Номера, сменившие оператора, хранят в базе данных перенесенных абонентских номеров (БДПН). Ее оператор — уже не Россвязь, но Центральный научно-исследовательский институт связи.

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

как узнать код города по номеру сотового телефона. image loader. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-image loader. картинка как узнать код города по номеру сотового телефона. картинка image loader.
Все, что может рядовой пользователь — вручную проверить конкретный номер

Мы получили доступ к БДПН в далеком 2013 году как «иная организация». Но с тех пор правила, похоже, ужесточили. Даже бланк заявления сильно изменился, свежий лежит на сайте Института связи. Поэтому посоветовать здесь ничего не могу, увы.

UPD. В комментариях пишут, что с доступом все не так сурово: «Работал в энергосбытовой компании, без проблем за несколько дней получил доступ к бдпн. заполнил заявление, подписал директором, поставил печать и отправил по электронике. Потом созвонился для верности».

Проверить, не ушел ли номер к другому оператору

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

Институт связи выкладывает БДПН на SFTP-сервер, в три папки.

как узнать код города по номеру сотового телефона. image loader. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-image loader. картинка как узнать код города по номеру сотового телефона. картинка image loader.
В первой папке лежит полный справочник. Во второй — инкрементальные обновления. А третья хранит номера, вернувшиеся «владельцам»

как узнать код города по номеру сотового телефона. image loader. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-image loader. картинка как узнать код города по номеру сотового телефона. картинка image loader.
В название инкрементов вставляют дату и время обновления. Если хотите максимально срочно получать перенесенные номера — вот, пожалуйста. Если срочности нет, проще раз в сутки загружать полный справочник

Формат файлов — CSV, сжатые в ZIP. Внутри — проще некуда.

как узнать код города по номеру сотового телефона. image loader. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-image loader. картинка как узнать код города по номеру сотового телефона. картинка image loader.
В файлах справочника три поля: номер, оператор и количество строк. Причем третье поле заполняют только для первой строки — изящное решение

Историю в БДПН не хранят: каждый день на сервер выкладывают все перенесенные номера. Если телефона нет в полном справочнике или в инкрементах за день, значит, он подчиняется плану Россвязи. Поэтому для наших целей папка с вернувшимися номерами — ReturnIncrementNew — не нужна.

Каждый день мы загружаем с сервера свежую БДПН. Для этого годится любой SFTP-клиент: на Windows подойдет WinSCP или FileZilla FTP Client, на Ubuntu — Nautilus. Классическая ошибка при этом: оставить в настройках дефолтный FTP вместо положенного SFTP. Так можно долго промучиться, не повторяйте наших ошибок.

Когда справочник перенесенных номеров под рукой, осталось поискать в нем исследуемый номер. Варианта два:

А можно разобрать номер «Дадатой»

Еще вариант — отдать номер телефона «Дадате», сервис вытащит из него полезное.

как узнать код города по номеру сотового телефона. image loader. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-image loader. картинка как узнать код города по номеру сотового телефона. картинка image loader.
Распозна́ем оператора, исправим опечатки в номере, покажем страну, регион и часовой пояс. Наконец, отделим стационарник от мобильного

Источник

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

как узнать код города по номеру сотового телефона. uznat kakoj operator i kakoj region po nomeru telefona. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-uznat kakoj operator i kakoj region po nomeru telefona. картинка как узнать код города по номеру сотового телефона. картинка uznat kakoj operator i kakoj region po nomeru telefona.

Самый быстрый способ

как узнать код города по номеру сотового телефона. opredelit region. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-opredelit region. картинка как узнать код города по номеру сотового телефона. картинка opredelit region.

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

Узнать буквально за несколько секунд, в каком регионе России или стране зарегистрирован номер телефона, можно с помощью специализированных сайтов в режиме онлайн. Потребуется только ввести комбинацию цифр в окно поиска и нажать кнопку “Найти” или “Определить”.

Подобных сайтов множество. Среди них рекомендуются те, которые выдают максимум доступных данных, т.е. не только регион в России или страну, но и город, название сотового оператора.

Среди таких сервисов:

Порядок определения номера через интернет

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

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

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

Бесплатные сервисы

Некоторые сайты и сервисы не только помогают узнать, откуда звонили, но и предоставляют другие полезные функции:

как узнать код города по номеру сотового телефона. spravportal ru. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-spravportal ru. картинка как узнать код города по номеру сотового телефона. картинка spravportal ru.

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

Коды регионов телефонов России по городам

Список представлен не в алфавитном порядке названий областей, а с тем расчетом по числовому возрастанию, чтобы по цифрам кода быстро узнать к какому региону России относится данный код:

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

Коды операторов

Ниже представлены коды, закреплённые за федеральными операторами сотовой связи:

ОператорКод
МТС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
Теле2900-902, 904, 908, 950-953, 958, 977, 992, 994, 996, 999

Стоит сказать, что данные комбинации цифр не могут дать пользователю какой-либо точной информации, связанной с геолокацией другого абонента: к примеру, def-код (996) предназначен для примерно 40 регионов нашей страны, в которых представлены услуги Yota.

Также некоторые из представленных серий делятся между операторами «Большой тройки» и региональными поставщиками связи, то есть, например, обладатель номера +7 (900) ХХХ-ХХ-ХХ может быть абонентом как Теле2, так и Екатеринбургского «Мотива».

Для идентификации входящего вызова следует обращать внимание не на первые 3 цифры, а на первые 5 (иногда даже 7) — в таком случае регион поиска значительно сузится, и пользователь сможет найти хотя бы примерные сведения о местоположении вызывающего его абонента.

Конечно, вряд ли кто-либо получит удовольствие от ручного скролла длинного списка из пятизначных чисел, поэтому для быстрого и качественного определения локации по номеру мобильного стоит использовать специальные онлайн-сервисы (RegionOperator или IndexMain.ru).

Можно ли получить данные о владельце номера

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

Получить полные данные хозяина номера телефона законным путем можно только от правоохранительных органов при расследовании уголовного дела.

Легальные способы, как проверить самостоятельно, кому может принадлежать номер мобильного:

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

Источник

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

Когда мы пытаемся определить какому оператору принадлежит номер телефона, то обычно смотрим на его 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
будет иметь вид, как на картинке (перечисленные маски в дереве идут слева направо).
как узнать код города по номеру сотового телефона. image loader. как узнать код города по номеру сотового телефона фото. как узнать код города по номеру сотового телефона-image loader. картинка как узнать код города по номеру сотового телефона. картинка image loader.

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

Заключение

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

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

Источник

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

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