Joe主题 对接腾讯位置服务 展示IP属地

Joe主题 对接腾讯位置服务 展示IP属地

小菜狗
2023-03-24 / 0 评论 / 79 阅读 / 正在检测是否收录...

Joe主题 对接腾讯位置服务 展示IP属地

第一步:注册账号
打开腾讯位置服务官网,点击登录,直接使用QQ登录或微信登录即可。

第二步:创建应用
打开控制台,左侧有一个应用管理,创建应用,应用名称丶应用类型随意选。

第三步:添加Key

这时候我们选择 WebService API 服务即可,选择后有三种方案,域名白名单、授权 IP、签名校验,一般我们会部署在服务器上,所以可以选择授权 IP,这样方便一些;域名白名单和签名校验限制有些多,且我们这次对接博客也是以授权 IP 为主。

添加后我们就能拿到一个 Key,下面开始对接博客展示博友访客 IP 属地信息。
一个应用可以添加多个 Key,一个 Key 每日可调用 10000 次,并发 5 次每秒。

第四步:接入以下代码
代码位置: Joe主题 /core/function.php 在末尾添加以下代码

/* 腾讯Lbs IP定位服务 */
function curl_tencentlbs_ip($ip) {
    //应用Key也就是腾讯位置服务申请到的Key,修改成自己的Key即可
    $key = 'XXX-XXX-XXX';
    $url = 'https://apis.map.qq.com/ws/location/v1/ip?ip='.$ip.'&key='.$key;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_HTTPGET, true);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36');
    $content = curl_exec($ch);
    curl_close($ch);
    if($content) {
        $json = json_decode($content,true);
        if($json['status'] == 0 ) {
            $resjson = $json['result']['ad_info'];
            if($resjson['province']=='北京市'||$resjson['province']=='天津市'||$resjson['province']=='上海市'||$resjson['province']=='重庆市') {
                return $resjson['province'].$resjson['city'];
            }
            return $resjson['province'].$resjson['city'];
        }
    }
    return '';
}
/* 
默认调用:广东省深圳市,如需别的自行添加,代码:.$resjson['这里填入函数'];
国函数:nation 省函数:province 市函数:city 区函数:district
*/

第五步:评论处调用代码
评论代码位置: Joe主题 /public/comment.php 在自己合适的位置添加以下代码(自己找位子)
最后再说明一点,展示IP属地可能会拖慢有评论区板块的网页速度!!!

<?php echo curl_tencentlbs_ip($comments->ip); ?>
0

打赏

评论 (0)

取消