当前位置:首页 > 技术 > 正文内容

PHP网页显示用户IP地址信息的代码记录

Lavfun2周前 (01-02)技术49

Part 01

直接放入php文件中:

<?php
// 获取用户 IP
function getClientIP() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

// 调用 API 获取 IP 信息
function getIPInfo($ip) {
    $datatype = 'txt';
    $url = 'https://xxxxxxxxxxx.api.cn/ipdata/?ip=' . $ip . '&datatype=' . $datatype;//注意替换为自己的url链接;
    $header = array('token:xxxxxxxxxxxxx');//token替换为你自己的token;
    return getData($url, $header);
}

// 发起 HTTP 请求
function getData($url, $header) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    $handles = curl_exec($ch);
    curl_close($ch);
    return $handles;
}

// 获取用户 IP 和 IP 信息
$userIP = getClientIP();
$ipInfo = getIPInfo($userIP);

// 输出结果
// echo "您的 IP 地址是:" . $userIP . "<br>";
// var_dump($ipInfo);
// echo $ipInfo;
?>

放入html文本里引用的:

    <div class="showip1">当前IP地址:<?php echo $userIP;?></div>
    <div class="showip1">当前IP详情:<?php echo $ipInfo;?></div>



Part 02

对于有些程序的网站,无法直接运行php代码的,需要改为插件的方式注入才行:

#注册插件    

RegisterPlugin("default", "ActivePlugin_default");

function ActivePlugin_default()
{
    // 将自定义方法注册到模板系统
    Add_Filter_Plugin('Filter_Plugin_Template_Display', 'default_AddMethodsToTemplate');

}

然后:

// 将方法注入到模板中
function default_AddMethodsToTemplate(&$template)
{
    $user_ip = getClientIP();
    $ip_location = getIPInfo($user_ip);

    $template->SetTags('user_ip', $user_ip);
    $template->SetTags('ip_location', $ip_location);
}

// 获取用户 IP 地址
function getClientIP() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

// 调用 API 获取 IP 归属地信息
function getIPInfo($ip) {
    $datatype = 'json';//数据类型有:json、txt、xml等格式输出可选;
    $url = 'https://xxxxxxxxxx.api.cn/ipdata/?ip=' . $ip . '&datatype=' . $datatype;//注意替换为自己的url链接;
    $token='xxxxxxxxxxxxxx';//这个token要换成自己的;
    $header = array('token:'.$token);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    $handles = curl_exec($ch);
    curl_close($ch);
    return $handles;
}

最后再:

//插入html文档使用部分:
    <div class="showip1" style="text-align: center; font-size: 14px; color: #abb0bd; font-weight: 400;">当前IP地址:{$user_ip}</div>
    <div class="showip2" style="text-align: center; font-size: 14px; color: #abb0bd; font-weight: 400;">当前IP信息:{$ip_location}</div>

完美搞定!


更多详情见:https://user.ip138.com/ip/doc/

扫描二维码推送至手机访问。

版权声明:本文由 声光视趣 - lavfun.com 发布,如需转载请注明出处。

本文链接:https://www.lavfun.com/technical-forum/109.html

分享给朋友:

相关文章

舞台灯光的作用和本质是什么?

舞台灯光的作用和本质是什么?

舞台灯光的作用和本质不外乎以下几点:照明演出,使观众看清演员表演和景物形象 ;导引观众视线;塑造人物形象,烘托情感和展现舞台幻觉;创造剧中需要的空间环境;使用灯光渲染剧中气氛;显示时空转换,突出戏剧矛盾冲突和加强舞台节奏,丰富艺术感染力,有...

本站原创:PHPCMS的NGINX伪静态和URL规则设置实践记录

本站原创:PHPCMS的NGINX伪静态和URL规则设置实践记录

首先说明一下,本人小白,不懂网页代码编程语言或技术,只是自己摸索了一点简单的修改页面的方法,大部分都是在网上找到的资料,再加上自己的理解、修改、测试琢磨出来的,写出来一方面是自己做个记录,另外一方面希望能帮助到有需要的人吧,水平有限还请鉴谅...

批量将MP4或其它视频格式的文件用H.265(HEVC)编码转换M3U8格式

批量将MP4或其它视频格式的文件用H.265(HEVC)编码转换M3U8格式

为什么要转换M3U8格式?M3U8格式是把视频分割成多个片段(1-60秒/片段,可选),这样好处就是用于网站或APP链接时,加载视频的速度会显著加快,提升用户体验!使用工具:VideoProc要求:使用最新的H265编码技术,可以大幅压缩视...

PHPCMSX禁用抓取远程图片附件和邮件Illegal string offset 'mailmessage'错误

PHPCMSX禁用抓取远程图片附件和邮件Illegal string offset 'mailmessage'错误

PHPCMSX禁用抓取远程图片附件功能PHPCMSX默认使用的Ueditor编辑器,我们的网站如果使用了OSS远程附件的话,那么它总是自动把附件下载到本地,而且将文章内容里的地址也改成本地的,这样就增加网站体积,我们的附件加速也失效了,这肯...

HTML图文内容快速另存/转换为Word文档的Docx格式的方法

HTML图文内容快速另存/转换为Word文档的Docx格式的方法

有时候,出于收集资料、收藏资料等目的,可能需要将网页上的图文内容保存下来,而且希望在有需要的时候可以对内容进行一定的编辑,那么保存为.docx的word文档会是最佳选择,那怎么才能把html网页里的图文内容快速保存为docx的word文档呢...

Discuz怎么修改帖子发布时间实现自定义排序

Discuz怎么修改帖子发布时间实现自定义排序

登录自己空间的数据库管理phpmyadmin界面;找到数据表 pre_forum_post 和 pre_forum_thread;再搜索要修改时间帖子的tid并且编辑该条记录;然后修改这条记录的dateline字段,这个字段就是记录帖子的发...

评论列表

大飞
2周前 (01-06)

整理的不错,对我也有用,感谢分享!

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。