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的设置值相关)。在客户端测试结果正确。
类如下:
classgetIP{ functionclientIP(){ $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; } functionserverIP(){ returngethostbyname($_SERVER["SERVER_NAME"]); } } $getIP=newgetIP(); $clientIp=getIP::clientIP(); $serverIp=getIP::serverIP(); echo'ClientIPis',$clientIp,'<br/>'; echo'ServerIPis',$serverIp,'<br/>';
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《phpcurl用法总结》、《phpsocket用法总结》、《php正则表达式用法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数学运算技巧总结》、《php面向对象程序设计入门教程》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。