Как стать автором
Обновить
5
0
Евгений Чуканов @set610

Пользователь

Отправить сообщение
В своей подобной статье писал как именно это можно сделать, есть ссылка на исходный код.
Не знаю, как у Qiwi, но в первом комментарии была ссылка на статью, где упоминался API Мегафон, который определяет и регион и оператора, вроде даже с учетом MNP.
Первые пять цифр первого номера «90000» — Краснодарский край.
Первые пять цифр второго номера «90001» — Тверская обл.
Это совершенно разные области.
И эти первые цифры больше нигде больше не могут повториться у других операторов в реестре Россвязи.

И если бы ваше правило работало, то у операторов в конкретных областях не было бы емкостей больше 100.000 номеров. А это не так, т.к. есть емкости, например, по 1.000.000 номеров. Например Tele2 Москва: (901)-5??-????
Сейчас, к сожалению, этот метод уже не сработает.
Например, самые первые в списке маски Россвязи:
90000????? – Tele2 Краснодарский край
90001????? – Tele2 Тверская обл.

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

Уверяю вас, тут будет все будет хорошо.


Действительно, у Россвязи очень много таких диапазонов (особенно почему-то у Tele2).
В таких случаях диапазон будет записан в виде нескольких масок.
Например, диапазон из 2-5 номеров моя библиотека пребразует к 2-5 маскам которые в точности будут повторять эти номера.
А, скажем, диапазон 888-999 будет записан как набор масок [888, 889, 89?, 9??], каждая из которых будет поставлена в соответствие одному объекту-оператору.


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

Из тех, что сейчас приходят в голову:


  • главным образом это может пригодиться, если вы используете какие-то операторские услуги, которые отличаются по цене от оператора к оператору. Такие как: мобильная коммерция (оплата услуг со счета абонента), или, например, рассылка сообщений;
  • как сказали в комментарии выше, цена звонка абоненту может отличаться;
  • можно для UI анкеты пользователя рядом с полем ввода телефона рисовать иконку оператора и страны (красивости и доп. валидация);
  • возможно будет полезна статистика, пользователей какого оператора у вас больше.
Да, API Мегафон тоже отличное и легкое решение задачи.
Но моя статья о том, как делать определение очень быстро, локально у себя, без лишних зависимостей. А также, на какие данные и алгоритмы это определение опирается.
При необходимости, кстати, можно самому поднять у себя подобный API (готовая реализация есть репозитории).

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность