php cli方式下获取服务器ip

来源:互联网 发布:淘宝怎么搜卖家id 编辑:程序博客网 时间:2024/05/23 11:24

(1)php cli方式下获取服务器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; }[/code]客户端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类[code=Php width=600px]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 />' ;