首页| 版块| 我的| 发帖| 消息
主题:关于帖子阅读页显示的ip地址来源
zhangjingyu 
1.后台添加“IP归属选择”开关,网络方式为从chinaz.com查询获得地理位置信息,本地方式为从本地数据库文件中查询。

2.在require/common.php文件里添加自定义函数,数据的处理都在这里:
    function getipguishu($onlineip) {//2025.12.21
    $getUrl = 'https://ip.tool.chinaz.com/'.$onlineip;
    $curl = curl_init(); // 初始化curl
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_URL, $getUrl); // 抓取指定网页
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl不直接输出到屏幕
    curl_setopt($curl, CURLOPT_HEADER, 0); // 设置header
    $data = curl_exec($curl); // 运行curl
    curl_close($curl);

    $begin=strpos($data,'items-center');
    $end=$begin+100;
    $str=substr($data,$begin,$end);//截取页面

    $encode = mb_detect_encoding($str, array('ASCII','UTF-8','GB2312','GBK','BIG5'));
    $string =mb_convert_encoding($str,'GBK',$encode);//使用iconv函数转码在空间论坛无效

    $begin2=strpos($string,'ipAddress');
    $end2=$begin2+100;
    $str2=substr($string,$begin2,$end2);//再次截取页面
    $str3=explode('>',$str2);
    $str4=explode('getIpFrom($onlineip);
$ipfrom = $db_ipguishu ? $guishu : $ipTable->getIpFrom($onlineip);
zhangjingyu回帖于2025-12-21 20:11[查看电脑版]
下一楼»:网络查询的方式需要访问外网,不知道发帖/回帖时会不会有影响,就怕请求呼应时间太长。暂时测试 ..
«上一楼:到此,关于帖子阅读页显示的ip地址来源的修改终于算是完美收官了!

查看全部回帖(144)
«返回主帖