returns the value of the environment variable varname, or false on an error.
<?php// example use of getenv()$ip = getenv('remote_addr'); |
這是在php官方的manual提供的方法。
但是當web服務器api是asapi (iis)的時候,getenv函數是不起作用的。這種情況下你如果用getenv來取得用戶客戶端ip的話,得到的將是錯誤的ip地址。
因此更為安全和準確的方法是盡量避免使用getenv函數。比如可以用以下的函數來獲取ip信息:
//get the real client ip ("bullet-proof")
function getip(){
if (getenv("http_client_ip") && strcasecmp(getenv("http_client_ip"), "unknown"))
$ip = getenv("http_client_ip");
else if (getenv("http_x_forwarded_for") && strcasecmp(getenv("http_x_forwarded_for"), "unknown"))
$ip = getenv("http_x_forwarded_for");
else if (getenv("remote_addr") && strcasecmp(getenv("remote_addr"), "unknown"))
$ip = getenv("remote_addr");
else if (isset($_server['remote_addr']) && $_server['remote_addr'] && strcasecmp($_server['remote_addr'], "unknown"))
$ip = $_server['remote_addr'];
else
$ip = "unknown";
return($ip);
}
新聞熱點
疑難解答