sunset-2739472_1920.jpg

需求

使用腾讯位置服务API进行定位,因为腾讯的API可以识别IPv6的位置,但是每天10000次调用很快就会耗尽,耗尽后网站不会报错,就是不会再显示位置了。

API申请地址:

https://lbs.qq.com
创建应用,添加key。应用产品选择webService接口,根据IP还是域名调用根据自己情况选择。然后记录产生的key。

修改主题

在主题functions.php的最后面添加下面的代码。记得将申请到的key进行替换。

/* 腾讯Lbs IP定位服务 */
function curl_tencentlbs_ip($ip) {
    //应用Key也就是上面所说的AK,修改成自己的Key即可
    $key = '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['nation'].$resjson['city'];
            }
            return $resjson['nation'].$resjson['province'];
        }
    }
    return '';
}

修改主题component/comments.php。在第104行</time>前添加:

发送自<?php echo curl_tencentlbs_ip($comments->ip); ?>。

收工,拉倒评论区看一下效果。

End


最后修改:2022 年 12 月 09 日
如果觉得我的文章对你有用,请随意赞赏