Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过php/ajax/javascript动态检测蜂窝运营商?_Php_Mysql_Mobile_Sms_Carrier - Fatal编程技术网

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

如何通过php/ajax/javascript动态检测蜂窝运营商?,php,mysql,mobile,sms,carrier,Php,Mysql,Mobile,Sms,Carrier,我问这个问题是因为我一天大部分时间都在讲,似乎找不到答案 这就是我要做的(不使用付费网关): -首先,我正在建立一个包含各种信息和日期的数据库 -使用cron,我将运行一个脚本,通过email-to-SMS-PHP脚本在该日期向用户发送各种信息(用户提供) -以避免维护准确的蜂窝载波列表。我想以某种方式ping这个号码,并返回运营商和相应的“@carrier电子邮件分机”来发送消息。(我不想在注册过程中询问用户;为了简化注册——为了不成为PIA并获得更多用户)——我目前有一个下拉列表,其中列出了

我问这个问题是因为我一天大部分时间都在讲,似乎找不到答案

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

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

-使用cron,我将运行一个脚本,通过email-to-SMS-PHP脚本在该日期向用户发送各种信息(用户提供)

-以避免维护准确的蜂窝载波列表。我想以某种方式ping这个号码,并返回运营商和相应的“@carrier电子邮件分机”来发送消息。(我不想在注册过程中询问用户;为了简化注册——为了不成为PIA并获得更多用户)——我目前有一个下拉列表,其中列出了大约50家运营商(我知道我可能忘记或意外遗漏了一些运营商),但我不想维护该列表。我想删除表格的这一部分。理想情况下,我希望在输入数字时通过ajax/javascript检查数字,并在提交期间将运营商信息发送到MYSQL。

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

“您将在{date}向您的手机号码{mobile number}发送一条包含以下信息的短信{listed information}。”

有什么建议吗

它的两步过程

  • 查找手机的国家/地区代码。。你可以使用谷歌API来实现这一点。。。谷歌免费提供(谷歌:libphonenumber-谷歌的电话号码处理库)

  • 网络代码列表可以在维基百科上找到。。。对于每个国家,您必须通过选择前几个数字的国家代码来实现这一点。(谷歌:移动国家代码-维基百科)

  • 您将找到每个国家的网络代码列表,您将看到运营商名称和MC/C跨国公司列表。当您从手机号码中计算出一个国家的国家代码时,每个carier都有一个唯一的MCC MNC。然后,对于每个国家,您必须编制一个查找表;选择手机号码的前3位数字并为其分配网络代码。。。为您所在的国家/地区的运营商做此练习,您会发现这一点


    因为我实现它是为了一个目的,所以我可以告诉你。。这是一项艰巨的工作。祝你好运

    如果您想确定电话号码的实际载波,您应该执行所谓的HLR(归属位置寄存器)查找。许多消息传递服务都提供这样的服务,它们通常有一个HTTP 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;
    ?>
    

    为什么要将用户提供的数据发送到外部源?数据保护不是有点问题吗?@DarylGill他们正在为自己的手机号码设置提醒和提醒,以备日后使用,或者当其他用户在类似的信息集中标记手机号码时使用。如果你有用户的电话号码,那么你可以进行查找以获得运营商。@Sammitch你知道这是否准确吗?通过我的研究,fonefinder.net做到了这一点(我根据它吐出的url知道)。我输入了我的号码,找到了我以前的承运人。(我的航母被另一家航母买了)。你知道我需要做什么吗?我同意@Sammitch。你会得到你付出的。如果你找到一个免费的服务,它可能会不那么准确。@Ehtesham Haque谢谢你的回答。你能详细解释一下吗?@rcpilotp51我更新了回复。。。我在excel中有一个查找表。。不知道怎么寄。。如果你正在做编程,它将帮助你。所有国家/地区代码和网络代码都与之对应。。但价值100万:)libphonenumber不允许您确定号码的载体,只允许您确定国家、号码类型、固定电话的地理位置等。此外,您没有考虑手机号码的可移植性,即在保留号码的同时在运营商之间迁移,对于许多国家,编号范围可以细分为比您提到的3个数字前缀更小的部分。@pilsetnieks是的!号码可携性是一个巨大的问题!有没有办法ping所有的运营商的号码,如果我得到了积极的回应发送消息?嗨,谢谢你的回答,但我正在寻找每个问题的免费选项。感谢幸运的是,已经实施移动电话号码可移植性的国家没有免费选项。截至今天,这似乎是离线的(smsarc.com的DNS错误):(这项服务似乎不再存在。