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 файлов мой коллега Александр заметил, что в паспорте открытых данных неверно указаны ссылки на эти данные. Федеральное агентство связи достаточно оперативно внесло корректировки в паспорт открытых данных по ресурсу нумерации.

© Habrahabr.ru