Цель статьи – показать, как с помощью современных технологий и открытых баз данных можно определить географический регион владельца телефонного номера, а затем использовать эту информацию для построения эффективных сервисов поиска традиционных целителей (знахарок) в любой точке России.
Почему регион телефона важен при поиске знахарок?
Знахарки, как правило, работают в небольших населённых пунктах и часто не имеют официальных онлайн‑страниц. Их клиентская база формируется через рекомендации, телефонные звонки и местные рекламные листовки. Если у вас есть номер телефона потенциального клиента или партнёра, знание его региона позволяет:
- Сократить список возможных мест проживания знахарки.
- Подстроить рекламные сообщения под локальные особенности (язык, традиции, праздники).
- Оптимизировать маршруты полевых визитов специалистов‑посредников.
- Собрать статистику спроса на услуги знахарок по регионам.
Структура телефонных номеров в России
Российская телефонная нумерация построена по международному плану E.164 и имеет следующий вид:
+7 (Код региона) ХХХ-ХХ-ХХ
Где:
- +7 – международный код России.
- Код региона (3‑значный) – определяет географический район (область, крупный город или мобильный оператор).
- ХХХ-ХХ-ХХ – абонентская часть номера.
Коды фиксированных линий
Для стационарных телефонов коды региона (так называемые DEF‑коды) привязаны к конкретным субъектам РФ. Примеры:
- 495 – Москва.
- 812 – Санкт‑Петербург.
- 383 – Тюмень.
- 351 – Нижний Новгород.
Коды мобильных операторов
Мобильные номера начинаются с 9, а дальше – с 3‑значного префикса, который изначально указывал на оператора и регион:
- 903, 904, 905 – МТС (разные регионы).
- 916, 917, 918 – Мегафон.
- 910, 911, 912 – Билайн.
- 950, 951, 952 – Теле2.
С 2013 года в России действует услуга переноса номера (MNP), поэтому привязка к оператору и региону может быть изменена. Поэтому для точного определения региона необходимо использовать актуальные базы данных, учитывающие перенесённые номера.
Основные источники данных о регионах телефонов
Официальные документы Роскомнадзора и Роскомсвязи
План нумерации, опубликованный на сайте Роскомнадзора, содержит официальные диапазоны кодов для всех регионов РФ. Однако он не учитывает перенос номеров.
Публичные API
Существует несколько бесплатных и платных сервисов, предоставляющих JSON‑ответы с информацией о регионе и операторе:
- Regius API – пример запроса. Возвращает
region,mnc,operи страну. - MNP API – сервис определения оператора и региона с учётом перенесённых номеров. Возвращает массив
region(id, name). - Numverify – международный сервис, поддерживает российские номера, но в бесплатной версии ограничен по запросам.
Открытые базы данных
На GitHub можно найти репозитории с CSV‑файлами, содержащими более 290 000 записей о диапазонах номеров (данные 2025‑2026 годов). Пример репозитория: ru-phone-codes.
Как построить собственный сервис определения региона
Выбор подхода
Существует два основных пути:
- Локальная база – загрузить CSV‑файл в свою СУБД (PostgreSQL, MySQL) и выполнять поиск по префиксу.
- Внешний API – отправлять запросы к готовому сервису (Regius, MNP) и получать готовый ответ.
Пример реализации на Python (локальная база)
import csv
from bisect import bisect_left
ranges = [] # список кортежей (начало, конец, регион)
with open('ru_phone_ranges.csv', newline='', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
start = int(row['range_start'])
end = int(row['range_end'])
region = row['region_name']
ranges.append((start, end, region))
ranges.sort(key=lambda x: x[0])
def find_region(phone):
# Убираем все символы, оставляем только цифры
digits = ''.join(filter(str.isdigit, phone))
if len(digits) != 11 or not digits.startswith('7'):
return 'Некорректный номер'
number = int(digits[1:]) # без кода страны
# Бинарный поиск
i = bisect_left(ranges, (number, ))
if i < len(ranges) and ranges[i][0] <= number <= ranges[i][1]:
return ranges[i][2]
elif i > 0 and ranges[i-1][0] <= number <= ranges[i-1][1]:
return ranges[i-1][2]
else:
return 'Регион не найден'
print(find_region('+7 -95 123-45-67')) # → Москва
Пример обращения к внешнему API (cURL)
curl -G "https://api.regius.name/ifaces/phone-number/asterisk" --data-urlencode "phone=+7 -95 1234567" -H "Accept: application/json"
Ответ (пример):
{
"phone": "+7 -95 1234567",
"region": {"id": 77, "name": "Москва"},
"mnc": "250",
"oper": {"id": 1, "name": "МТС"},
"country": "RU"
}
Специфика поиска знахарок
Географическая гранулярность
Для традиционных целителей достаточно знать не только субъект РФ, но и конкретный район/населённый пункт. Поэтому после получения области следует:
- Сопоставить её с базой КЛАДР (Классификатор адресов России) для получения списка городов и сельских поселений.
- Использовать открытые реестры «Росреестр» и «Госуслуги», где иногда указаны контакты традиционных целителей.
Фильтрация по типу услуги
В базе знахарок обычно присутствуют поля:
- Тип практики (традиционная медицина, народные целебные травы, рунические практики и т.д.).
- Год основания (для оценки репутации).
- Контактный телефон.
Сопоставив регион телефона с полем «регион» в базе знахарок, можно быстро сформировать список подходящих специалистов.
Пример SQL‑запроса
SELECT z.id, z.name, z.phone, r.name AS region FROM знахарки z JOIN regions r ON z.region_id = r.id WHERE r.name = :region_name AND z.phone IS NOT NULL ORDER BY z.rating DESC LIMIT 20;
Ограничения и юридические аспекты
Точность при наличии MNP
Перенос номера может изменить регион, но не всегда обновляется мгновенно в открытых базах. Поэтому рекомендуется:
- Сочетать несколько источников (офиц. реестр + API).
- Периодически (раз в месяц) обновлять локальную базу.
Защита персональных данных
Обработка телефонных номеров подпадает под действие ФЗ‑152 «О персональных данных». Требования:
- Получать согласие субъекта на хранение и обработку номера.
- Обеспечить шифрование базы (TLS при запросах к API, AES‑256 при хранении).
- Вести журнал доступа и предоставлять возможность удаления данных по запросу.
Этические вопросы
Знахарки часто работают в рамках традиций, а их услуги могут восприниматься как альтернативная медицина. При публикации результатов поиска следует:
- Указывать, что информация предоставлена «как есть» без гарантии качества.
- Не использовать данные для навязывания услуг без явного согласия пользователя.
Лучшие практики внедрения
- Кеширование результатов – храните ответ API в Redis (TTL 24 ч) для снижения нагрузки.
- Пакетная обработка – если нужно определить регион для тысяч номеров, используйте bulk‑запросы (некоторые API поддерживают массив номеров).
- Обратная связь – позволяйте пользователям исправлять неверно определённый регион (формой «Мой регион»).
- Мониторинг качества – сравнивайте результаты с реальными адресами, полученными от клиентов, и корректируйте базу.
Определение региона по телефонному номеру – ключевой элемент при построении сервисов поиска знахарок по всей России. Современные открытые API (Regius, MNP) и регулярно обновляемые CSV‑базы позволяют получать точные данные даже в условиях переноса номеров. При правильном сочетании технических решений, юридической ответственности и этических принципов можно создать надёжный и полезный инструмент, который поможет людям находить проверенных традиционных целителей рядом с домом.
Если вы планируете реализовать такой сервис, начните с выбора источника данных, интегрируйте его в ваш бекенд, позаботьтесь о защите персональных данных и протестируйте работу на реальных примерах. Удачной разработки!