18

私のアプリケーションは SMS メッセージを人々に送信しますが、携帯電話として入力された番号が固定電話である場合があります (これはユーザー エラーであるか、ユーザーが自分の連絡先番号が携帯電話か固定電話かを本当に認識していないためです)。

番号が固定電話か携帯電話かを教えてくれるウェブサイトをいくつか見つけましたが、それらはプログラム API を提供していません。番号が SMS メッセージを受信できるかどうかを Web アプリケーションが判断できる方法を知っている人はいますか?

テスト SMS メッセージは 1 つの方法だと思いますが、現在の SMS ゲートウェイは、固定電話番号を取得するとうまく機能せず、SMS を送信しようとした固定電話番号を教えてくれません。私はこれをキャリアにフォローアップしますが、電話番号が固定電話番号または携帯電話番号である場合、ユーザーが電話番号を入力できる簡単な方法が欲しいです。

更新: これを理解する方法があります。http://www.phonevalidator.comを見ると、電話番号を照会して、それが固定電話か携帯電話かを判断できます。

4

12 に答える 12

6

JavaScript で次の URL のポップアップを開くことができます: " http://www.phonevalidator.com/results.aspx?p= " + phoneNumber

于 2009-04-23T22:47:04.090 に答える
6

これは無料のサービスではありませんが、Targus という会社 (バッグの会社ではありません) には、電話情報を照会するための API があります。彼らはそれが固定電話なのか携帯電話なのか、さらには住所の検証さえも見分けることができます。実行するクエリの数に基づく料金 (クエリあたり数セント)。 http://www.targusinfo.com/

フォローアップ: 2011 年 2 月 24 日に TARGUSinfo に連絡したところ、営業担当者から、彼らは数十万から数百万のレコード セットしか扱っておらず、通常、顧客はリアルタイム アクセスのために API に接続されているとのことでした。小規模なレコード セットのセル番号と固定電話番号を区別することは、「彼らが支援できるものではありません」。

于 2009-04-19T02:32:19.173 に答える
5

実際には、SMSの受信を許可する固定電話事業者がいます。text2voiceゲートウェイまたは拡張機能を備えた電話端末のいずれか。さらに、ヨーロッパでは、携帯電話事業者は「仮想陸上回線」の提供を開始しました。これは、実際には1つの特定の基地局に割り当てられたGSM携帯電話です。しかし、それらは固定電話の番号付けスキームに従います。

再開—固定電話番号へのSMSの送信を許可しないのは間違っています。

于 2009-04-18T09:56:16.773 に答える
5

申し訳ありませんが、これを確認する唯一の方法は、SMS ゲートウェイ サービス プロバイダーに連絡することです。それらのリストは、たとえば次の場所にあります。

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

とにかく、その代わりに、次のことをお勧めします。

ユーザーが自分のプロファイルに携帯電話番号を挿入すると、この番号に確認コードを含むテスト SMS が送信されます。番号がユーザーによって確認されていない場合は、後で SMS メッセージを送信する必要はありません。

于 2009-04-13T15:27:51.483 に答える
2

本当にそれをしたいかどうかはわかりません...番号が電話電話または固定電話プロバイダーによって予約されているかどうかを知りたい場合は、あなたの国の電話会社の監督機関からのいくつかの文書で範囲を見つけることができるはずです(米国で誰がそれをしているのかわからない-それはhttp://www.nanpa.com/かもしれない)。これらのドキュメントは通常公開されています。

しかし、問題は携帯電話番号!=SMSを受信できることです。番号の移植とすべての「ユニファイドコミュニケーション」のアイデアにより、ローカル番号を携帯電話にリダイレクトしたり、非地理的な番号でSMSを処理したり、ローカルの「特別な」番号で受信したSMSをFacebookメッセージとして書き換えたりすることができます;)たとえば、私のローカルの「ランドライン」番号は、別の国および他のいくつかの場所の携帯電話にリダイレクトされます。

存在しない/そうでなければ奇妙な番号に送信されたメッセージに対して課金されるべきではないので、誰かがそれらを受信できるかどうかを確認するための良い方法かもしれません。SMSゲートウェイを適切に制御できる場合は、配信レポートがアクティブで、有効期限==即時メッセージ(正式な名前を忘れた)を含むメッセージを送信できます。テスト/ウェルカムメッセージを送信するだけです。受け入れられない場合は、番号を利用不可としてマークできます。それ以外の場合は、「携帯電話番号」の代わりに「SMSを受け入れる番号」を要求することができます。

于 2009-04-19T00:50:16.983 に答える
2

次のスクリプトは戻ります

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";
于 2009-04-18T03:10:10.340 に答える
2

ここでいくつかの答えを組み合わせようとしています...

ダニエルが言及した

JavaScript で次の URL のポップアップを開くことができます: " http://www.phonevalidator.com/results.aspx?p= " + phoneNumber

これはまだ機能しますか?私はそれを再現できないようです。それを機能させることができれば、次のようなスクリプトを使用できるかもしれません...

#!/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";
于 2012-05-07T17:43:26.890 に答える
0

米国とカナダの固定回線/セルラー検出を提供するサービスがあり、番号がライブかデッドか、番号がどのワイヤレスキャリアに移植されているかなども検出します。完全な Web API があります。

www.hlrcheck.com でアカウントにサインアップすると、アカウントが検証され、テスト用の無料クレジットが追加されます。現時点ではベータ版ですが、完全なリリース候補版が間もなくリリースされます。

于 2014-08-04T11:24:20.730 に答える
0

コアモバイルネットワークにアクセスできれば、これを行うことを想像できます. ただし、これは SS7 API であり、Web API ではありません。Web API を提供するサービスは、データベースに依存するのではなく、SS7 ネットワークへのプロキシとして機能するに違いありません。他の唯一の代替手段は、番号ポーラビリティ データベースにクエリを実行することです。最終的に、通話を終了するために、すべてのネットワーク オペレータは、接続する必要がある他のオペレータを決定する必要があります。

于 2009-04-20T15:07:54.340 に答える
0

ここで説明する解決策はすべて静的な番号パターンのルックアップですが、特定の携帯電話番号が有効かどうか (および SMS を受信する準備ができているかどうか) を確認する唯一の信頼できる方法は、HLR ルックアップを実行することです。HLR はホーム ロケーション レジスタの略で、リアルタイムの加入者情報を含むモバイル ネットワーク オペレータ データベースです。www.hlr-lookups.com など、HLR 検索用の API サービスがいくつかあります。

于 2016-01-08T14:44:19.710 に答える
0

もう 1 つのオプションは、ユーザーに携帯電話会社をリストから選択させることです。ちょっとした考え。

于 2009-04-18T23:23:03.357 に答える
0

固定電話番号と携帯電話番号の通常の形式のリストを作成してみませんか? たとえば、私がいる場所では、固定電話は常に次の形式に従います。

9xxxx xxxx

携帯電話は常に次のとおりです。

04xx xxx xxx

サービスを提供している地域の固定電話/携帯電話番号の一般的な形式のリストを簡単に作成できます。次に、米国の番号が固定電話か携帯電話かを調べたい場合は、それを比較して、固定電話番号の形式と携帯電話番号の形式のどちらに一致するかを確認します。

電話番号を検証するためによく行われるもう 1 つの方法は、SMS 経由でユーザーの携帯電話に一時的な PIN を送信し、番号を検証するためにその PIN を入力するように求めることです。

于 2009-04-19T01:24:37.790 に答える