Подтвердить что ты не робот

Веб-интерфейс, который может сказать мне, является ли номер стационарным или мобильным телефоном?

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

Я нашел несколько веб-сайтов, которые могут сказать мне, является ли номер стационарным или мобильным телефоном, но они не предлагают программные API. Кто-нибудь знает о том, как веб-приложение может выяснить, может ли номер получать SMS-сообщения?

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

Обновление: Есть способы понять это. Посмотрите http://www.phonevalidator.com, они могут запросить номер телефона и выяснить, является ли он стационарным или сотовым телефоном.

4b9b3361

Ответ 2

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

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

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

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

Ответ 3

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

Возобновление — не позволяя отправлять SMS на номер линии земли, является неправильным.

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

Следующий script возвращает

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";

Ответ 7

Попытка объединить некоторые ответы здесь...

Даниэль упомянул, что

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

Это все еще работает? Я не могу воспроизвести его. Если мы сможем это сделать, возможно, мы сможем использовать script, как показано ниже...

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

use LWP::Simple;

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.phonevalidator.com/results.aspx?p=' . $NPA . $NXX;

# html format:
#...
#                                                       <td class="style16">
#                                Phone Line Type:
#                            </td>
#                            <td class="style13">
#                                <span id="PhoneTypeLabel">LANDLINE</span>
#                            </td>
#
#...
my $result = "";
grep {
    if (/PhoneTypeLabel/) {
        $result = $_;
    }
} split(/\n/, $doc);

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

print "$number\t$1\n";

Ответ 8

Другим вариантом является выбор пользователем поставщика сотовых телефонов из списка. Просто мысль.

Ответ 9

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

9xxxx xxxx

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

04xx xxx xxx

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

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

Ответ 10

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

Ответ 11

у нас есть услуга, которая обеспечивает фиксированное/сотовское обнаружение для США и Канады, а также определяет, является ли это число "Живой" или "Мертвый", какой беспроводной оператор переносит номер и т.д. Существует полный веб-API.

Если вы зарегистрируетесь для учетной записи на сайте www.hlrcheck.com, я получу ее для проверки и добавлю бесплатные кредиты для тестирования. На данный момент мы находимся в стадии бета-тестирования, но кандидат на полный выпуск неминуем.

Ответ 12

Все решения, упомянутые здесь, являются поисками шаблонов статических чисел, но единственный надежный способ выяснить, действительно ли данный номер сотового телефона (и готов принять SMS) - выполнить поиск HLR. HLR означает "Регистр местоположений на дому", который представляет собой базу данных оператора мобильной сети с информацией о подписке в реальном времени. Существует несколько служб API для поиска HLR, например. www.hlr-lookups.com.