优质VPS推荐
VPS优惠 评测

php中获取客户端真实IP地址的方法

获取客户端真实IP地址的方法可以使用 $_SERVER['REMOTE_ADDR']。但是需要注意的是,如果客户端使用了代理服务器,那么获取到的IP地址可能是代理服务器的IP地址,而不是客户端真实的IP地址。如果您需要获取客户端真实的IP地址,可以尝试使用 $_SERVER['HTTP_X_FORWARDED_FOR']。但是需要注意的是,这个方法也不能保证百分之百的准确性,因为有些代理服务器可能会伪造这个值。

<?php


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'];
}

$ip_details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));
$country = $ip_details->country;
$region = $ip_details->region;
$city = $ip_details->city;


$ip2 = $_SERVER['REMOTE_ADDR'];


$ip2_details = json_decode(file_get_contents("http://ipinfo.io/{$ip2}/json"));
$ip2_country = $ip2_details->country;
$ip2_region = $ip2_details->region;
$ip2_city = $ip2_details->city;

echo "您的IP地址是:" . $ip .",CDN节点是:".$ip2;

$log_message = date("Y-m-d H:i:s") . " 您的IP地址是"." IP地址:" . $ip . ",属地:" . $country . " " . $region . " " . $city . ",CDN地址:" . $ip2 . ",属地:" . $ip2_country . " " . $ip2_region . " " . $ip2_city . " 访问了网站。\n";
error_log($log_message, 3, "access.log");

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php中获取客户端真实IP地址的方法》
文章链接:https://www.tianyanjie.com/1789.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册