Typecho——为评论增加地址信息展示

2024-08-16 15:06:30 浏览数 (3)

前言

想针对EasyBe主题的评论,增加对应的IP地址信息展示;

内容

?> 找了搜狐、淘宝、ip.sb等一些api,最后选择了plyz.net,在functions.php中添加以下方法;

函数封装

代码语言:javascript复制
/**
 * 留言IP
 *
 * @param int $ip ip地址
 */
function getIPInfo($ip) {
    $url =  "http://ip.plyz.net/ip.ashx?ip={$ip}";
    $data = curlRequest($url, 'GET');
    echo explode("|",$data)[1];
}


/**
 * 多种请求方法封装
 *
 * @param string   $url      请求地址
 * @param string   $method   请求方式
 * @param array    $header   请求头
 * @param array    $data     请求体
 *
 * @return mixed
 */
function curlRequest($url, $method = 'POST', $header = ["Content-type:application/json;charset=utf-8", "Accept:application/json"], $data = [])
{

    $method = strtoupper($method);
    $ch = curl_init();
    //curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888');
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    if (!empty($data)) {
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}

前端调用

在评论内容页,找个合适的位置调用即可;

代码语言:javascript复制
<?php getIPInfo($comments->ip) ?>

0 人点赞