getenv — 获取一个环境变量的值
服务器IP地址:当前运行脚本所在的服务器的 IP 地址。
- gethostbyname()函数说明——用域名或主机名获取IP地址;
- $_SERVER['SERVER_ADDR'];
- getenv('SERVER_ADDR');
(客户端)浏览器IP地址:正在浏览当前页面用户的 IP 地址。
- gethostbyname()函数说明——用域名或主机名获取IP地址;
- getenv("REMOTE_ADDR");浏览当前页面的用户计算机的ip地址;
- $_SERVER['REMOTE_ADDR'];
- getenv("HTTP_X_FORWARDED_FOR"): 浏览当前页面的用户计算机的网关;
- getenv("HTTP_CLIENT_IP"):客户端的ip;
客户端是使用代理服务器的
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,
那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。
要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
例如:
//显示客户端I
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 = $HTTP_SERVER_VAR['REMOTE_ADDR'];
}
return $client_ip;
}
//服务器IP
function get_server_ip(){
if (isset($_SERVER))
{
if($_SERVER['SERVER_ADDR']) $huoqu_ip=$_SERVER['SERVER_ADDR'];
else $huoqu_ip=$_SERVER['LOCAL_ADDR'];
}
else
{
$huoqu_ip=getenv('SERVER_ADDR');
}
return $huoqu_ip;
}