Numcap — npm для определения оператора и региона по номеру телефона
Тем, кто работает с телефонией, приложениями связанных со звонками и т.п. время от времени приходится сталкиваться с вопросами: «а можно определять с какого региона этот звонок?» и «а этот номер какого мобильного оператора? «В общем-то, ответы найти легко. На сайте Федерального агентства связи есть данные о ресурсе нумерации всех операторов связи. Заходишь на сайт, скачиваешь нужный CSV файл и находишь нужную информацию.
Но ведь можно автоматизировать этот поиск? Конечно. И многие аккуратно парсят этот CSV и складывают к себе в базу данных. А затем используют. Я тоже так делаю.
Но недавно с моим коллегой мы решили немного это упаковать и сделать npm для быстрого подключения ресурса нумерации к проекту на node.js.
Ссылка на гитхаб, ссылка на npm.
Далее немного деталей.
В npm уже лежат 4 файла в JSON для быстрого поиска данных по номеру. Это преобразованные в JSON из CSV данные с сайта Федерального агентства связи РФ. Имеют ту же структуру, что и CSV: код, диапазон номеров, количество номеров в диапазоне, название оператора и регион.
Поиск по номеру заключается в поиске нужного диапазона в файле и предоставлении данных по этому диапазону.
Пример использования numcap
var numcap = require ('numcap');
var finder = new numcap ();
finder.getData (»8 (391) 274–50–00», function (err, data) { console.log (data); });
/* Output data object: { code: '391', begin: '2745000', end: '2745399', capacity: '400', operator: 'Мобилон Телекоммуникации', region: 'Красноярск |Красноярский край' } */ Утилита ncli.jsВ комплекте идет консольная утилита ncli.js, которая может пригодиться в следующих случаях.
1. Обновление данных. Данные на сайте обновляются примерно раз в месяц, поэтому периодически нужно актуализировать данные.
2. Перенос данных в Mongo DB. Использование файлов медленнее, чем использование базы данных mongo, поэтому данные JSON файлов можно перенести в mongo.
Описание опций утилиты есть в readme проекта.
Надеюсь, пригодится вам в ваших разработках. Принимаются конструктивные предложения по улучшению и дополнительному функционалу.
P.S. Во время подготовки утилиты по скачиванию CSV файлов мой коллега Александр заметил, что в паспорте открытых данных неверно указаны ссылки на эти данные. Федеральное агентство связи достаточно оперативно внесло корректировки в паспорт открытых данных по ресурсу нумерации.