Typecho Cuteen 主题基于腾讯位置服务添加IP属地显示
阿伟
2022年12月13日 19:11 / 37 阅读 / 0 评论 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年12月30日,已超过83天没有更新,若内容或图片失效,请留言反馈。

效果

4.png

教程

1.注册腾讯位置服务

打开腾讯位置服务官网,注册一个账号或者直接用QQ或者微信登录,验证一下手机号即可
1.png

2.创建应用

打开控制台,点击左侧边栏中的应用管理,然后点击创建应用,输入应用名称和应用类型即可。
2.png

3.添加KEY

一个应用可以添加多个 Key,一个 Key 每日可调用 10000 次 IP定位 ,并发 5次/s 。
选择 WebService API 服务,然后选择授权 IP ,填入服务器IP ,保存后就能拿到一个 Key
3.png

4.主题调用方法

代码来自 萧瑟大佬 的 Joe 主题对接腾讯 LBS 展示 IP 属地。为了个人隐私,以下代码已去除城市和区县信息,仅显示国家和省。
将以下核心代码添加至 Cuteen/core/Function.php 的末尾

/* 腾讯LBS IP定位服务 */
function curl_tencentlbs_ip($ip) {
    //应用Key也就是上面的Key,修改成自己的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 '';
}

5.修改主题评论相关代码

代码位置: Cuteen/include/comment.php 第21行
新开一行,添加以下代码,即可

IP属地:<?php echo curl_tencentlbs_ip($comments->ip); ?>
1

—— 评论区 ——

昵称
邮箱
网址
取消