php cli方式下获取服务器ip
2013-05-30 14:53
253 查看
(1)php cli方式下获取服务器ip
(2)php cgi方式下 获取 客户端ip和服务器端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_NAME,需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。
2. $HTTP_SERVER_VARS["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。
3. $_SERVER['LOCAL_ADDR'] 、$HTTP_SERVER_VARS['LOCAL_ADDR'],测试中,未获得任何结果(测试环境PHP5)。
完整的获得IP类
function getServerIp(){ $ss = exec('/sbin/ifconfig eth0 | sed -n \'s/^ *.*addr:\\([0-9.]\\{7,\\}\\) .*$/\\1/p\'',$arr); $ret = $arr[0]; return $ret; }
(2)php cgi方式下 获取 客户端ip和服务器端ip
PHP获取客户端和服务器IP地址的函数写法如下: [code=Php width=600px]/** * 获取客户端IP地址 * @return string */ function get_client_ip() { if(getenv('HTTP_CLIENT_IP')){ $client_ip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR')) { $client_ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR')) { $client_ip = getenv('REMOTE_ADDR'); } else { $client_ip = $_SERVER['REMOTE_ADDR']; } return $client_ip; } /** * 获取服务器端IP地址 * @return string */ function get_server_ip() { if (isset($_SERVER)) { if($_SERVER['SERVER_ADDR']) { $server_ip = $_SERVER['SERVER_ADDR']; } else { $server_ip = $_SERVER['LOCAL_ADDR']; } } else { $server_ip = getenv('SERVER_ADDR'); } return $server_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_NAME,需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。
2. $HTTP_SERVER_VARS["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。
3. $_SERVER['LOCAL_ADDR'] 、$HTTP_SERVER_VARS['LOCAL_ADDR'],测试中,未获得任何结果(测试环境PHP5)。
完整的获得IP类
01./** 02. * Get Client/Server IP 03. * 04. * @author Yaron (http://yaron.org.cn) 05. * @version 0.1 06. * @package 07. */ 08. 09.class getIP{ 10. function clientIP(){ 11. $cIP = getenv ( 'REMOTE_ADDR' ); 12. $cIP1 = getenv ( 'HTTP_X_FORWARDED_FOR' ); 13. $cIP2 = getenv ( 'HTTP_CLIENT_IP' ); 14. $cIP1 ? $cIP = $cIP1 : null; 15. $cIP2 ? $cIP = $cIP2 : null; 16. return $cIP ; 17. } 18. function serverIP(){ 19. return gethostbyname ( $_SERVER_NAME ); 20. } 21.} 22. 23.$getIP = new getIP(); 24.$clientIp = getIP::clientIP(); 25.$serverIp = getIP::serverIP(); 26. 27.echo 'Client IP is ' , $clientIp , '<br />' ; 28.echo 'Server IP is ' , $serverIp , '<br />' ;
相关文章推荐
- php cli方式下获取服务器ip
- linux php cli模式下获取服务器ip
- PHP中获取客户端IP、服务器IP的方法
- php如何获取经多个服务器转发后的客户端ip
- PHP获取IP的多种方式解析
- PHP 获取服务器ip等详细信息
- PHP获取IP的多种方式解析
- PHP获取IP的多种方式解析
- PHP获取客户端与服务器IP
- PHP获取IP的多种方式解析
- php获取用户和服务器ip及其地理位置详解
- PHP获取客户端ip或服务器ip
- 做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
- PHP获取IP的多种方式解析
- php获取ip三种方式
- 做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
- 如何用 PHP 来获取客户端 IP 和 服务器(主机)的 IP
- 分享PHP获取客户端IP的几种不同方式
- php获取用户和服务器ip及其地理位置详解
- php 获取服务器IP