这篇文章主要介绍了php获取客户端及服务器端ip的封装类,简单分析了php使用服务器预定义变量的基本用法并进行了简单封装,需要的朋友可以参考下
具体如下:
客户端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 />';
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
php符合psr编程规范的实例
php curl 模拟登录并获取数据实例
php的4种常用运行方式详解
以上就是php实现获取客户端及服务器端ip的封装类的详细内容。