我如何检测蜂窝运营商动态通过php/ajax/javascript


How do I detect a cellular carrier dynamically through php/ajax/javascript?

我之所以问这个问题,是因为我一天中大部分时间都在工作,似乎找不到答案。

这就是我想做的(不使用付费网关):

-首先,我正在建立一个数据库,其中包含各种信息和日期。

-使用cron,我将运行一个脚本发送各种信息(用户提供)给用户在该日期通过电子邮件短信PHP脚本。

-避免维护准确的蜂窝运营商列表。我想以某种方式ping这个号码并返回运营商和适当的"@carrier-email-extension"发送信息。(我不想在注册时询问用户;为了简化注册(而不是成为PIA并获得更多用户)-我目前有一个下拉列表,列出了大约50家运营商(我知道我可能已经忘记或不小心遗漏了一些),但我不想维护这个列表。我想删除表格的这一部分。理想情况下,我想通过ajax/javascript检查数字,因为它被输入,并在提交期间将运营商信息发送到MYSQL。

-用户已经同意从我的服务中获取SMS消息/更新/文本,所以没有恶意的事情发生。他们将在设置另一个消息时达成一致:

您将向您的手机号码发送包含以下信息的短信{列出的信息},手机号码}在{日期}。

有什么建议吗?

如果您想确定电话号码的实际运营商,您应该执行所谓的HLR (Home Location Register)查找。许多消息传递服务提供这样的服务,并且它们通常为此提供HTTP API。然而,它会让你付出代价——每次查找都有一个代价,很小,但这些代价都是累积起来的。

此外,如果您需要特定国家的电话号码,负责电话号码的监管机构可能有也可能没有可以查询号码数据的某种数据库服务。这些通常有固定的成本,所以你应该做一下计算,如果你对那个国家的数字做了足够的查询,这样它就会得到回报。

它的两步过程。

  1. 查找手机的国家代码..你可以使用Google API…Google提供免费的(Google: libphonenumber - Google的电话号码处理库)

  2. 网络代码列表可在维基百科…对于每个国家,您必须通过选择国家代码的前几位数字来实现。(Google:移动国家代码-维基百科)

您将找到每个国家的网络代码列表,您将看到运营商名称和MC/C MNC列表。当你从手机号码中找出一个国家的国家代码时,每个运营商都有一个唯一的MCC MNC。然后你需要为每个国家编写一个查找表;选择手机号码的前3位,分配给他网络代码…为你的国家运营商做这个练习,你就会知道了。

因为我实现了它的文本API,这就是为什么我可以告诉你这个…这是一项艰苦的工作。好运!

我也有这个问题——这里有一个快速的解决方案,它将为您提供手机运营商的电子邮件到短信功能,只给蜂窝电话号码:

<?php                               
// leave this blank - we may never implement an authentication key
$smsarc_API_key = ''; 
// enter the user's 10 digit cell phone number. 
// example format: $smsarc_to = '5556667777';
$smsarc_number = '3123094991'; 
// lookup carrier
$ch = curl_init();  curl_setopt ($ch, CURLOPT_URL, 'http://www.smsarc.com/api-carrier-lookup.php?sa_number='.$smsarc_number);   $AskApache_result = curl_exec ($ch);        $smsarc_message_status =  $AskApache_result; curl_close($ch);
// print the carrier lookup results
echo $smsarc_carrier;
?>

开发者API从他们的网站:http://www.smsarc.com/free-php-cell-phone-carrier-lookup/