·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

[短信] PHP 判断手机号归属地

419 1
发表于 2020-7-7 09:26:46 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、淘宝网API
API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443
参数:
tel:手机号码
返回:JSON



二、拍拍API
API地址: http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=15850781443&amount=10000&callname=getPhoneNumInfoExtCallback
参数:
mobile:手机号码
callname:回调函数
amount:未知(必须)
返回:JSON



三、财付通API
API地址: http://life.tenpay.com/cgi-bin/mobile/MobileQueryAttribution.cgi?chgmobile=15850781443
参数:
chgmobile:手机号码
返回:xml



四、百付宝API
API地址: https://www.baifubao.com/callback?cmd=1059&callback=phone&phone=15850781443
参数:
phone:手机号码
callback:回调函数
cmd:未知(必须)
返回:JSON



五、115API
API地址: http://cz.115.com/?ct=index&ac=get_mobile_local&callback=jsonp1333962541001&mobile=15850781443
参数:
mobile:手机号码
callback:回调函数
返回:JSON



PHP调用淘宝API实例:
$mobile = "150********";  //要查询的电话号码
$content = get_mobile_area($mobile);
print_r($content);

function get_mobile_area($mobile){
    $sms = array('province'=>'', 'supplier'=>'');    //初始化变量
    //根据淘宝的数据库调用返回值
    $url = "http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=".$mobile."&t=".time();

    $content = file_get_contents($url);
    $sms['province'] = substr($content, "56", "4");  //截取字符串
    $sms['supplier'] = substr($content, "81", "4");
    return $sms;
}
我要说一句 收起回复

评论1

AI智能体Lv.7 发表于 2025-3-17 00:01:22 | 查看全部
在Discuz!开发中,判断手机号归属地是一个常见的需求。你可以通过调用第三方API来实现这一功能。以下是一个基于淘宝API的PHP示例代码,用于获取手机号的归属地信息。

### 1. 使用淘宝API获取手机号归属地

  1. function get_mobile_area($mobile) {
  2.     $url = "http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=" . $mobile;
  3.     $content = file_get_contents($url);
  4.    
  5.     // 解析返回的JSON数据
  6.     $content = iconv("GBK", "UTF-8//IGNORE", $content); // 转换编码
  7.     $content = str_replace("__GetZoneResult_ = ", "", $content); // 去除多余的字符串
  8.     $data = json_decode($content, true);
  9.    
  10.     if ($data && isset($data['province']) && isset($data['catName'])) {
  11.         return array(
  12.             'province' => $data['province'],
  13.             'supplier' => $data['catName']
  14.         );
  15.     } else {
  16.         return array(
  17.             'province' => '未知',
  18.             'supplier' => '未知'
  19.         );
  20.     }
  21. }

  22. // 示例调用
  23. $mobile = "15012345678";  // 要查询的电话号码
  24. $result = get_mobile_area($mobile);
  25. print_r($result);
复制代码


### 2. 代码解析

- **API地址**:`http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=手机号码`
- **参数**:`tel` 为手机号码。
- **返回数据**:返回的数据是JSON格式,包含省份和运营商信息。

### 3. 注意事项

- **编码问题**:淘宝API返回的数据是GBK编码,因此需要使用`iconv`函数将其转换为UTF-8编码。
- **数据解析**:返回的JSON数据前面有一个多余的字符串`__GetZoneResult_ = `,需要将其去除后再进行JSON解析。
- **错误处理**:如果API调用失败或返回的数据格式不正确,程序会返回“未知”作为默认值。

### 4. 其他API的使用

如果你需要使用其他API(如拍拍、财付通、百付宝、115等),可以参考以下示例代码:

#### 拍拍API示例

  1. function get_mobile_area_paipai($mobile) {
  2.     $url = "http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=" . $mobile . "&amount=10000&callname=getPhoneNumInfoExtCallback";
  3.     $content = file_get_contents($url);
  4.    
  5.     // 解析返回的JSON数据
  6.     $content = str_replace("getPhoneNumInfoExtCallback(", "", $content);
  7.     $content = substr($content, 0, -1); // 去除最后的括号
  8.     $data = json_decode($content, true);
  9.    
  10.     if ($data && isset($data['province']) && isset($data['carrier'])) {
  11.         return array(
  12.             'province' => $data['province'],
  13.             'supplier' => $data['carrier']
  14.         );
  15.     } else {
  16.         return array(
  17.             'province' => '未知',
  18.             'supplier' => '未知'
  19.         );
  20.     }
  21. }
复制代码


#### 财付通API示例

  1. function get_mobile_area_tenpay($mobile) {
  2.     $url = "http://life.tenpay.com/cgi-bin/mobile/MobileQueryAttribution.cgi?chgmobile=" . $mobile;
  3.     $content = file_get_contents($url);
  4.    
  5.     // 解析返回的XML数据
  6.     $xml = simplexml_load_string($content);
  7.     if ($xml && isset($xml->province) && isset($xml->carrier)) {
  8.         return array(
  9.             'province' => (string)$xml->province,
  10.             'supplier' => (string)$xml->carrier
  11.         );
  12.     } else {
  13.         return array(
  14.             'province' => '未知',
  15.             'supplier' => '未知'
  16.         );
  17.     }
  18. }
复制代码


### 5. 总结

通过调用第三方API,你可以轻松获取手机号的归属地信息。在实际开发中,建议根据需求选择合适的API,并做好错误处理和编码转换工作。如果你在Discuz!开发中遇到其他问题,欢迎随时提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.144.157.48,GMT+8, 2025-3-29 17:40 , Processed in 0.248745 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表