分享好友 教程首页 教程搜索 频道列表

DESTOON用第三方IP属地api的接口实现ip属地

2022-09-05 13:479741
+关注28
核心提示:以上代码加入自定义函数php文件中 api/extend.func.php,前端调取的方式,不管在任意...
function getIpAddress($ip = ''){ // ip属地(来自太平洋电脑网)
    if(empty($ip)){
        $ip = $_REQUEST['ip'];
        if(empty($ip)) die('请传输ip地址'); // 根据实际调用方式去返回数据
    }
    $ch = curl_init();
    $url = 'https://whois.pconline.com.cn/ipJson.jsp?ip=' . $ip;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $data = curl_exec($ch);
    curl_close($ch);
    $data = mb_convert_encoding($data, 'utf-8', 'GB2312'); // 转换编码
    // 截取{}中的字符串
    $data = substr($data, strlen('({') + strpos($data, '({'), (strlen($data) - strpos($data, '})')) * (-1));
    // 将截取的字符串$data中的‘,’替换成‘&’   将字符串中的‘:‘替换成‘=’
    $data = str_replace('"', "", str_replace(":", "=", str_replace(",", "&", $data)));
    parse_str($data, $addressInfo); // 将字符串转换成数组格式
    //return $addressInfo['addr']; // 返回ip归属地,如:四川省成都市 电信ADS
    return $addressInfo['pro']; // 返回ip归属地,如:四川省
    //return $addressInfo['city']; // 返回ip归属地,如:成都市
}


以上代码源于20220705网络,我们需要把代码加入DESTOON自定义函数php文件中,文件位置 api/extend.func.php


前端调取的方式

不管在任意地方,首先你要得到原生ip的标签,在标签外面加上即可,如:

{getIpAddress($ip)}


注意:在不同的地方 $ip  有不同的写法,如:loop里用的是 $t[ip],公司商铺显示注册ip用的是 $COM[regip],会员登录ip用的是 $COM[loginip]


显示结果图展(我们这里只显示了省,你可以显示城市或者 省+城市),注意看php函数的注解。

本文标签: #ip属地 #归属地 #城市 #省份
免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
生成海报
相关评论1
您可能在找更多

DESTOON前端展示会员发布信息时和用户评论的ip属地

    应总局的要求,从2022.8.1起,所有的b2b站都要显示会员发布信息时的ip归属地,destoon本身自带ip属地函数,信息表也自带ip这个字段,我们只需要在详情show.htm模板中用标签调取即可,标签如下:详情

小黑 标签调用 12022-08-01

下一篇
我来说两句
1