本文目录一览:
- 1、php 获取client ip的时候transmit是啥,HTTP
- 2、php获得客户端的ip和端口号?
- 3、php 获取ip地址,为毛我获取的是 ::1
- 4、如何使用PHP获取客户端及服务器端IP的封装类
php 获取client ip的时候transmit是啥,HTTP
个人理解服务器如果部署了transmit层的的话,transmit相当一层过滤加反向代理,取REMOTE_ADDR的时候就会取到transmit的ip。这个情况下就不能用REMOTE_ADDR了。
参考一下:【PHP中HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR的使用】
php获得客户端的ip和端口号?
$_SERVER[‘REMOTE_PORT’];//端口号
$_SERVER[‘SERVER_ADDR’];//ip
//补充
$_SERVER[‘HTTP_CLIENT_IP’]; //代理端的(有可能存在,可伪造)
$_SERVER[‘HTTP_X_FORWARDED_FOR’]; //用户是在哪个IP使用的代理(有可能存在,也可以伪造)
php 获取ip地址,为毛我获取的是 ::1
你获取到的就是你本地的IP地址,用的是php自带的get_client_ip( ) 吧
你可以在那个方法里给个判断,如果是本地,你让它显示为127.0.0.1,就完事了
如何使用PHP获取客户端及服务器端IP的封装类
本文实例讲述了PHP获取客户端及服务器端IP的封装类。分享给大家供大家参考,具体如下:
客户端IP相关的变量:
1. $_SERVER[‘REMOTE_ADDR’]; 客户端IP,有可能是用户的IP,也有可能是代理的IP。
2. $_SERVER[‘HTTP_CLIENT_IP’]; 代理端的IP,可能存在,可伪造。
3. $_SERVER[‘HTTP_X_FORWARDED_FOR’]; 用户是在哪个IP使用的代理,可能存在,可以伪造。
服务器端IP相关的变量:
1. $_SERVER[“SERVER_NAME”],需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。
2. $_SERVER[“SERVER_ADDR”],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。
类如下:
class getIP{
function clientIP(){
$cIP = getenv(‘REMOTE_ADDR’);
$cIP1 = getenv(‘HTTP_X_FORWARDED_FOR’);
$cIP2 = getenv(‘HTTP_CLIENT_IP’);
$cIP1 ? $cIP = $cIP1 : null;
$cIP2 ? $cIP = $cIP2 : null;
return $cIP;
}
function serverIP(){
return gethostbyname($_SERVER[“SERVER_NAME”]);
}
}
$getIP = new getIP();
$clientIp = getIP::clientIP();
$serverIp = getIP::serverIP();
echo ‘Client IP is ‘,$clientIp,’br /’;
echo ‘Server IP is ‘,$serverIp,’br /’;
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/278318.html