wake-up-neo.net

Webbasierte API, die mir sagt, ob es sich bei einer Nummer um ein Festnetz- oder ein Mobiltelefon handelt?

Meine Anwendung sendet SMS Nachrichten an Personen, aber die als Mobiltelefon eingegebenen Nummern sind manchmal Festnetznummern (dies ist ein Benutzerfehler oder der Benutzer weiß nicht wirklich, ob die von ihm verwendete Kontaktnummer ein Mobiltelefon oder eine Festnetznummer ist.)

Ich habe einige Websites gefunden, die mir sagen können, ob es sich bei einer Nummer um eine Festnetz- oder eine Mobiltelefonnummer handelt, die jedoch keine programmgesteuerten APIs bieten. Ist jemandem bekannt, wie eine Webanwendung herausfinden kann, ob eine Nummer SMS Nachrichten empfangen kann?

Ich vermute, eine Testnachricht SMS ist in eine Richtung, aber mein aktuelles Gateway SMS schlägt schwer fehl, wenn es eine Festnetznummer erhält und mir nicht die Festnetznummer mitteilt, die es versucht hat, die SMS zu senden. zu. Ich verfolge dies mit meinem Mobilfunkanbieter, würde es jedoch begrüßen, wenn der Benutzer auf einfache Weise Telefonnummern eingibt, wenn es sich um eine Festnetz- oder Mobilfunknummer handelt.

Update: Es gibt Möglichkeiten, dies herauszufinden. Werfen Sie einen Blick auf http://www.phonevalidator.com , sie können eine Telefonnummer abfragen und herausfinden, ob es sich um ein Festnetz- oder ein Mobiltelefon handelt.

17
MikeN

JavaScript kann ein Popup mit der folgenden URL öffnen: " http://www.phonevalidator.com/results.aspx?p= " + phoneNumber

5

Es ist kein kostenloser Dienst, aber eine Firma namens Targus (nicht die Taschenfirma) hat eine API zum Abfragen von Telefoninformationen. Sie können feststellen, ob es sich um ein Festnetz- oder ein Mobilfunknetz handelt, und sogar die Adressvalidierung. Die Gebühr basiert auf der Anzahl Ihrer Abfragen (ein paar Cent pro Abfrage). http://www.targusinfo.com/

Follow-up: Ich habe TARGUSinfo am 24. Februar 2011 kontaktiert und von ihrem Vertriebsmitarbeiter erfahren, dass sie nur mit Hunderttausenden bis Millionen von Datensätzen arbeiten und dass ihre Kunden im Allgemeinen für den Echtzeitzugriff an ihre API angeschlossen sind. Die Unterscheidung zwischen Zellennummern und Festnetznummern für kleinere Datensatzgruppen ist "nicht das, womit sie helfen können".

5
Brent Baisley

Ich befürchte, der einzige echte Weg, dies herauszufinden, ist die Kontaktaufnahme mit SMS Gateway-Dienstanbietern. Eine Liste davon finden Sie hier zum Beispiel:

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

Trotzdem schlage ich stattdessen Folgendes vor:

Wenn der Benutzer eine Mobiltelefonnummer in sein Profil eingibt, senden Sie Test SMS mit Bestätigungscode an diese Nummer. Wenn die Nummer vom Benutzer nicht überprüft wird, müssen Sie später keine SMS - Nachrichten mehr an den Benutzer senden.

5

Tatsächlich gibt es Festnetzbetreiber, die den Empfang von SMS ermöglichen. Entweder per text2voice-Gateway oder Telefon-Terminal mit erweiterten Funktionen. Darüber hinaus bieten Mobilfunkbetreiber in Europa inzwischen "virtuelle Festnetzanschlüsse" an, bei denen es sich tatsächlich um GSM-Mobiltelefone handelt, die einer bestimmten Basisstation zugeordnet sind. Sie folgen jedoch dem Schema der Festnetznummerierung.

Fortsetzen - das Senden von SMS an die Festnetznummer ist falsch.

5
vartec

Ich versuche hier einige Antworten zu kombinieren ...

Daniel hat das erwähnt

JavaScript kann ein Popup mit der folgenden URL öffnen: " http://www.phonevalidator.com/results.aspx?p= " + phoneNumber

Funktioniert das noch Ich kann es scheinbar nicht reproduzieren. Wenn wir das zum Laufen bringen können, können wir vielleicht ein Skript wie das folgende verwenden ...

#!/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";
2
user1380336

Ich bin mir nicht sicher, ob Sie das wirklich tun möchten ... Wenn Sie wissen möchten, ob eine Nummer von einem Telefon- oder Festnetzanbieter reserviert wurde, sollten Sie die Bereiche in einigen Dokumenten der Telco-Aufsichtsbehörde Ihres Landes finden können ( Ich bin mir nicht sicher, wer das in den USA tut. Es könnte sein, dass http://www.nanpa.com/ ). Diese Dokumente sind normalerweise öffentlich.

Aber das Problem ist, dass Handynummer! = In der Lage ist, SMS zu empfangen. Mit der Nummernportierung und all den "Unified Communication" -Ideen von heute können Sie ganz einfach lokale Nummern auf Mobiltelefone umleiten lassen, nicht geografische Nummern, die SMS-Nachrichten verarbeiten, und lokale "Spezial" -Nummern, die Ihre eingehenden SMS-Nachrichten als Facebook-Nachrichten umschreiben. Zum Beispiel meine lokale "Festnetznummer". Die Nummer wird an ein Mobiltelefon in einem anderen Land und an einige andere Standorte weitergeleitet.

Sie sollten nicht für eine Nachricht belastet werden, die an eine nicht vorhandene/ansonsten seltsame Nummer gesendet wird. Dies ist möglicherweise eine gute Möglichkeit, um zu überprüfen, ob jemand sie empfangen kann. Wenn Sie eine gute Kontrolle über das SMS Gateway haben, können Sie eine Nachricht mit aktivem Zustellungsbericht und Ablauf == Sofortnachricht senden (den offiziellen Namen vergessen). Senden Sie einfach eine Test-/Begrüßungsnachricht. Wenn dies nicht akzeptiert wird, können Sie die Nummer als nicht verfügbar markieren. Ansonsten können Sie statt einer "Handynummer" einfach eine "Nummer, die SMS akzeptiert" anfordern.

2
viraptor

Das folgende Skript kehrt zurück

646-826-3879    LANDLINE

für die Hotline Stack Overflow.

#!/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
hlovdal

Eine andere Möglichkeit wäre, den Benutzer seinen Mobilfunkanbieter aus einer Liste auswählen zu lassen. Nur ein Gedanke.

0
Daniel A. White

wir haben einen Dienst, der Festnetz-/Mobilfunkerkennung für die USA und Kanada bietet und außerdem erkennt, ob die Nummer "Live" oder "Dead" ist, auf welchen Mobilfunkanbieter die Nummer portiert ist usw. Es gibt eine vollständige Web-API.

Wenn Sie sich für ein Konto bei www.hlrcheck.com anmelden, wird es validiert und Sie können ein paar kostenlose Credits zum Testen hinzufügen. Wir sind im Moment in der Beta-Phase, aber der Vollversionskandidat steht unmittelbar bevor.

0
3G Telecoms

Bei allen hier genannten Lösungen handelt es sich um statische Nummernmuster-Lookups. Die einzige zuverlässige Möglichkeit, um herauszufinden, ob eine bestimmte Mobiltelefonnummer gültig ist (und zum Empfangen von SMS bereit ist), besteht in der Durchführung eines HLR-Lookups. HLR steht für Home Location Register (Heimatregister), eine Mobilfunknetzbetreiberdatenbank mit Echtzeit-Teilnehmerinformationen. Es gibt verschiedene API-Dienste für HLR-Lookups, z. www.hlr-lookups.com.

0
marcinx

Ich kann mir vorstellen, dies zu tun, wenn ich Zugang zum zentralen Mobilfunknetz hätte. Dies ist jedoch keine Web-API, sondern eine SS7-API. Ich wette, dass jeder Dienst, der eine Web-API anbietet, als Proxy für das SS7-Netzwerk fungiert, anstatt sich auf Datenbanken zu verlassen. Die einzige andere Alternative wäre die Abfrage der Datenbank für die Porabilität von Nummern. Um einen Anruf zu beenden, müssen alle Netzbetreiber festlegen, mit welchem ​​anderen Netzbetreiber sie eine Verbindung herstellen müssen.

0
MSalters

Warum nicht eine Liste mit dem üblichen Format für Festnetz- und Mobiltelefonnummern erstellen? Wenn ich mich zum Beispiel im Festnetz befinde, folge ich immer diesem Format:

9xxxx xxxx

und Handys sind immer:

04xx xxx xxx

Sie können ganz einfach eine Liste des allgemeinen Formats der Festnetz-/Mobiltelefonnummern in dem Gebiet erstellen, in dem Sie tätig sind. Wenn Sie dann herausfinden möchten, ob es sich bei einer US-Nummer um eine Festnetz- oder Mobilfunknummer handelt, vergleichen Sie sie einfach und prüfen Sie, ob sie mit dem Festnetz- oder dem Mobilfunknummernformat übereinstimmt.

Zum Überprüfen von Telefonnummern wird häufig auch eine temporäre PIN per SMS an das Mobiltelefon des Benutzers gesendet, und dieser wird aufgefordert, diese PIN einzugeben, um seine Nummer zu überprüfen.

0
Click Upvote