Веб-API, который может сказать мне, если число является проводным или сотовым телефоном? [закрытый]

Когда вы используете делегат lazy, val инициализируется только при первом использовании. Итак, в вашем коде при первом обращении к connector запускается код внутри лямбды, и результат присваивается val.

get(), вместо этого, используется для переопределения того, что происходит, когда вы пытаетесь получить доступ к val.

17
задан Vadim Kotov 21 August 2017 в 11:23
поделиться

9 ответов

У вас может быть JavaScript, открывающий всплывающее окно с URL: " http://www.phonevalidator.com/results.aspx?p= " + phoneNumber

5
ответ дан 30 November 2019 в 13:05
поделиться

Боюсь, единственный реальный способ выяснить это - связаться с поставщиками услуг SMS-шлюза. Список их можно найти здесь, например:

http://en.wikipedia.org/wiki/SMS_gateways

В любом случае, вместо этого я предлагаю сделать следующее:

Когда пользователь вводит номер мобильного телефона в свой профиль отправьте тестовое SMS на этот номер с кодом подтверждения. Если номер не подтвержден пользователем, не отправляйте SMS-сообщения на него позже.

5
ответ дан 30 November 2019 в 13:05
поделиться

На самом деле есть операторы наземной линии связи, которые позволяют получать SMS. Либо через шлюз text2voice, либо через телефонный терминал с расширенными возможностями. Более того, в Европе операторы сотовой связи начали предлагать «виртуальные наземные линии», которые фактически являются сотовыми телефонами GSM, назначенными одной конкретной базовой станции. Но они следуют схеме нумерации наземной линии.

Возобновление - неправильная отправка SMS на номер наземной линии.

5
ответ дан 30 November 2019 в 13:05
поделиться

Это не бесплатная услуга, но у компании под названием Targus (не компания по производству пакетов) есть API для запроса информации о телефоне , Они могут сказать, если это стационарный или сотовый, даже адрес проверки. Оплата зависит от того, сколько запросов вы делаете (несколько центов за запрос). http://www.targusinfo.com/

Продолжение: 24 февраля 2011 года я связался с TARGUSinfo, и его торговый представитель сказал, что они работают только с наборами рекордов от сотен тысяч до миллионов и, как правило, их клиенты подключены к их API для доступа в режиме реального времени. Различие между номерами ячеек и номерами наземных линий связи для небольших наборов записей «не то, с чем они могут помочь».

5
ответ дан 30 November 2019 в 13:05
поделиться

Следующий скрипт возвращает

646-826-3879    LANDLINE

для стека Горячая линия переполнения.

#!/usr/bin/perl -w
use strict;
use warnings;

use LWP::Simple;
use LWP::Simple::Cookies ( autosave => 1, file => "$ENV{'HOME'}/lwp_cookies.dat" );

my $usage = "Usage: $0 <phone_number>\n\nwhere phone_number is on format XXX-XXX-XXXX or XXXXXXXXX";

die $usage unless scalar @ARGV == 1;

my $number = shift @ARGV;
die $usage unless $number =~ /(\d\d\d)-?(\d\d\d)/;
my $NPA = $1;
my $NXX = $2;

#GET /search.asp?frmNPA=646&frmNXX=826&frmCity=&frmState=&frmZip=&frmCounty=&frmCompany=&search.x=0&search.y=0 HTTP/1.0
my $doc = get 'http://www.area-codes.com/search.asp?frmNPA=' . $NPA . '&frmNXX=' . $NXX . '&frmCity=&frmState=&frmZip=&frmCounty=&frmCompany=&search.x=0&search.y=0';

# html format:
#...
#    <td><strong>NXX Use Type:</strong></td>
#        <td>LANDLINE</td>
#...
my $next = 0;
my $result = "";
grep {
    if (/NXX Use Type:/) {
        $next = 1;
    } else {
        if ($next) {
            $next = 0;
            $result = $_;
        }
    }
} split(/\n/, $doc);

$result =~ /<[^>]*>(.*)<[^>]*>/;

print "$number\t$1\n";
2
ответ дан 30 November 2019 в 13:05
поделиться

Я не уверен, если вы действительно хотите это сделать ... Если вы хотите сказать, если число Зарезервированный телефонным оператором или провайдером фиксированной связи, вы сможете найти диапазоны в некоторых документах от организации, контролирующей телекоммуникационные компании вашей страны (не уверен, кто это делает в США - это может быть http://www.nanpa.com/ ). Эти документы обычно общедоступны.

Но проблема в том, что номер мобильного телефона! = Возможность получать смс. С портированием номеров и всеми идеями «унифицированного общения» в настоящее время вы можете легко перенаправлять локальные номера на мобильные телефоны, негеографические номера для обработки смс и локальные «специальные» номера, переписывая ваши входящие смс в виде сообщений на Facebook;) Например, мой местный «стационарный телефон» номер перенаправляется на мобильный телефон в другой стране и в нескольких других местах.

Вам не нужно платить за сообщение, отправленное на несуществующий / в противном случае странный номер, поэтому это может быть хорошим способом проверить, может ли кто-то получить их , Если у вас есть хороший контроль над SMS-шлюзом, вы можете отправить сообщение с активным отчетом о доставке и немедленным сообщением expiry == (забыли официальное имя). Просто отправьте тестовое / приветственное сообщение - если оно не принято, вы можете пометить номер как недоступный. В противном случае вы можете просто запросить «номер, который принимает SMS-сообщения» вместо «номера мобильного телефона».

Вы можете отправить сообщение с активным отчетом о доставке и истечением == немедленное сообщение (забыл официальное название). Просто отправьте тестовое / приветственное сообщение - если оно не принято, вы можете пометить номер как недоступный. В противном случае вы можете просто запросить «номер, который принимает SMS-сообщения» вместо «номера мобильного телефона».

Вы можете отправить сообщение с активным отчетом о доставке и истечением == немедленное сообщение (забыл официальное название). Просто отправьте тестовое / приветственное сообщение - если оно не принято, вы можете пометить номер как недоступный. В противном случае вы можете просто запросить «номер, который принимает SMS-сообщения» вместо «номера мобильного телефона».

2
ответ дан 30 November 2019 в 13:05
поделиться

Другой вариант - пользователь выбирает своего провайдера сотовой связи из списка. Просто мысль.

0
ответ дан 30 November 2019 в 13:05
поделиться

Почему бы не составить список обычного формата для стационарных и мобильных номеров? Например, там, где я нахожусь, стационарные телефоны всегда следуют этому формату:

9xxxx xxxx

, а мобильные телефоны всегда:

04xx xxx xxx

Вы можете легко составить список общего формата номеров стационарных / мобильных телефонов в области, которую вы обслуживаете. Затем, когда вы хотите узнать, является ли номер в США стационарным или мобильным, просто сравните его и посмотрите, соответствует ли он формату стационарного номера или формату мобильного номера.

Еще одна вещь, которая часто делается для проверки телефонных номеров, это отправка временный пин-код по SMS на мобильный телефон пользователя и попросите его ввести этот пин-код, чтобы подтвердить свой номер.

0
ответ дан 30 November 2019 в 13:05
поделиться

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

0
ответ дан 30 November 2019 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: