Определение абонента по номеру домашнего телефона

Найти человека по домашнему телефону: возможно ли это? Как определить по номеру телефона адрес абонента? Поиск по номеру мобильного телефона. Как определить телефонный узел по номеру телефона. Является ли номер мобильного телефона персональными данными. Поиск организации по номеру телефона. Как найти пропавший телефон – инструкция. Мнения и отзывы.  Помогите пожалуйста пробить полный адрес человека по мобильнику Долг не отдает и скрывается. Асылбек.

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

Действительно, у Россвязи очень много таких диапазонов особенно почему-то у Tele2. В таких случаях диапазон будет записан в виде нескольких масок. Например, диапазон из номеров моя библиотека пребразует к маскам которые в точности будут повторять эти номера. А, скажем, диапазон будет записан как набор масок [,89?

Код который это делает можно посмотреть.

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

Ранее оператор и регион определялись по первым 5 цифрам федерального номера. В связи с возможностью сменить оператора теперь так можно достоверно определить только регион Остальные 5 цифрам в данном контексте нужны только, чтобы точно определить оператора. Не вижу противоречия Берём первые 5 цифр из вашего примера и получаем регион PS под регионом я подразумеваю то, что мобильные операторы называют домашней сетью — по сути область, в которой зарегистрирован абонент, она же является отчётной точкой для тарификации.

Хабр Geektimes Тостер Мой круг Фрилансим.

Определение адреса по номеру телефона

Публикации Пользователи Хабы Компании Песочница. Как определить мобильного оператора и домашний регион по номеру телефона Открытые данныеАлгоритмыOpen source Из песочницы Когда мы пытаемся определить какому оператору принадлежит номер телефона, то обычно смотрим на его DEF код. Например, если номер начинается нато это МТС, на — Билайн, — Мегафон все зависит от вашего региона. Но этот метод очень условный и совершенно не подходит когда нужны точные данные.

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

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

В России такой организацией является Федеральное агентство связи Россвязь.

Неофициальные методы

Таким образом, самым надежным источником информации кто обслуживает российский номер телефона является Россвязь, причем это открытые данные, которые определенье абонента по номеру домашнего телефона публикует у себя на сайте: Свежий список диапазонов мобильных номеров находится в CSV по ссылке. Каждая строка в файле выглядит как: DEF-код, определенье абонента по номеру домашнего телефона абонента по номеру домашнего телефона диапазона, конец диапазона, название оператора, название региона Однако, с года появилась возможность переносить номер от оператора к оператору.

Значит, руководствуясь только реестрами Россвязи, нельзя однозначно сказать, что номер обслуживается определенным оператором. Зато это вполне можно сказать про регион, ведь переносимость номера работает только в рамках домашнего региона и перенести номер из МТС Новосибирск в Tele2 Санкт-Петербург не получится в принципе. Таким образом, если по задаче нужно определить только регион пользователя, то реестров Россвязи будет достаточно. Процедуру подключения к базе можно найти у них на сайте: Но, к сожалению, насколько я знаю, напрямую подключиться к ним не просто, а получив подключение, делиться базой ни с кем.

Структура этой базы крайне проста: На момент написания статьи, в БДПН находится около 6 миллионов записей. Как определять абонентов Самое очевидное решение этой задачи: Сложность этого алгоритма будет как у бинарного поиска, что довольно неплохо. Но есть более оригинальный и универсальный способ реализации, сложность которого — константа, независимо от размера данных. Этот метод предполагает использование масок номеров. Причем после знака вопроса может стоять только знак вопроса.

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

Определяем номер с помощью Truecaller

Суть алгоритма в следующем: Значениями в таблице являются объекты-операторы с регионами. Работу поиска нагляднее всего объяснить на примере. Скажем, мы ищем информацию по номеру: Сперва ищем в таблице запись по ключу в точности как исходный номер: Если не найдено, то меняем последнюю цифру номера на "? Если опять ничего не нашли, то снова меняем последнюю цифру на "? В конце концов мы сделаем поиск по ключу ?????? Видно, что в данном случае сложность алгоритма равна сложности нескольких определений абонента по номеру домашнего телефона из хеш-таблицы, что при правильной реализации обычно равно константе.

Сложность поиска в таком дереве зависит от длины телефонных номеров, которая по рекомендации ITU-T E. Этот же алгоритм можно применить и к портированным номерам — их можно просто добавить в ту же самую хеш-таблицу. Префиксное дерево Гораздо более эффективный по производительности метод — определенье абонента по номеру домашнего телефона префиксного дерева из масок, который будет опираться на то, что номера состоят из цифр.

Каждая нода этого дерева сможет иметь до 10 цифровых нод-потомков и одной wildcard-ноды. Wildcard-нода может иметь только wildcard-потомков. При определеньи абонента по номеру домашнего телефона очередной маски в дерево, каждый символ маски последовательно превратится в ноду. Таким образом, фактически мы представляем все имеющиеся у нас маски в виде одного дерева. Например, дерево состоящее из масок: Алгоритм поиска в дереве, думаю, уже понятен: В первую очередь спускаемся по цифровым нодам, если цифровых нод нет, то смотрим есть ли "?

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

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

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

Но зато, это дает достаточно весомый прирост производительности. Как создавался World of Warcraft: FreePascal под Linux - правки open source-проекта double commander 11 откликов 82 просмотра. Доработка Android приложения на kotlin 8 откликов 62 просмотра. Нарисовать генеалогическое дерево 15 откликов просмотров. Русификация приложения для Андроид 8 откликов 42 просмотра. Генерация двумерного штрихкода barcode по формату PDF 11 откликов просмотра.

Да, API Мегафон тоже отличное и легкое решение задачи. Но моя статья о том, как делать определение очень быстро, локально у себя, без лишних зависимостей. А также, на какие данные и алгоритмы это определение опирается. При необходимости, кстати, можно самому поднять у себя подобный API готовая реализация есть репозитории. Знание домашнего региона — это хорошо, но в чём практическая польза от знания оператора?

НЛО прилетело и опубликовало эту надпись. С кодом была история ; а сколько ещё. Из тех, что сейчас приходят в голову: Если применить нехитрое определенье абонента по номеру домашнего телефона, что все номера представляют собой вид 79xxx-??? Содержать эта таблица будет указатели на таблицы вторичного поиска, в которых содержится??? Добавка 8кбайт таблицы первичного поиска на результат почти не влияет и получаем 4, чуть больше 4 байт на запись.

Поиск будет двоичным по вторичным таблицам, но за счет заметно меньшего объема памяти будет заметно быстрее, имхо. Можно разбить как 79xxx-xx? Это может негативно сказаться на производительности. Или обнаружим несколько записей, п. Там есть диапазоны и по 2, и по 5, и по номера, к сожалению. И, кстати, регионы диапазонов заданы у Россвязи не кодами, а наименованиями, которые могут обозначать один регион разными способами. Какие-то работы по приведению названий в порядок явно ведутся, судя по обновлениям, но пока не закончены.

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