php在cli和cgi方式下获取服务器ip的实例

php cli方式下获取服务器ip

php内核没有提供这样的命令,需要借助linux中的命令ifconfig来实现,如下两个函数代码:

function getServerIp(){ 

        $ss = exec('/sbin/ifconfig eth0 | sed -n \'s/^ *.*addr:\\([0-9.]\\{7,\\}\\) .*$/\\1/p\'',$arr);      

        $ret = $arr[0]; 

        return $ret; 

    }

二、php cgi方式下获取服务器ip

/**

* 获取客户端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;  

你可能感兴趣的:(PHP)