PHP网页显示用户IP地址信息的代码记录
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 发布,如需转载请注明出处。