php獲取客戶端IP地址的幾種方法 閱讀php獲取客戶端IP地址的幾種方法, <?php $iipp=$_SERVER["REMOTE_ADDR"]; echo $iipp; ?> <?php $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; echo $user_IP; ?> <?php function get_real_ip(){ $ip=false; if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } for ($i = 0; $i < count($ips); $i++) { if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) { $ip = $ips[$i]; break; } } } return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); } echo get_real_ip(); ?> <?php //php獲取ip的算法 //URL:http://www.bianceng.cn/webkf/PHP/201410/45962.htm if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) { $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; } elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]) { $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; } elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]) { $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; } elseif (getenv("HTTP_X_FORWARDED_FOR")) { $ip = getenv("HTTP_X_FORWARDED_FOR"); } elseif (getenv("HTTP_CLIENT_IP")) { $ip = getenv("HTTP_CLIENT_IP"); } elseif (getenv("REMOTE_ADDR")) { $ip = getenv("REMOTE_ADDR"); } else { $ip = "Unknown"; } echo "你的IP:".$ip ; ?> <?php if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR')) { $onlineip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR')) { $onlineip = getenv('REMOTE_ADDR'); } else { $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR']; } echo $onlineip; ?> <?php function getIP() /*獲取客戶端IP*/ { if (@$_SERVER["HTTP_X_FORWARDED_FOR"]) $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; else if (@$_SERVER["HTTP_CLIENT_IP"]) $ip = $_SERVER["HTTP_CLIENT_IP"]; else if (@$_SERVER["REMOTE_ADDR"]) $ip = $_SERVER["REMOTE_ADDR"]; else if (@getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (@getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if (@getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); else $ip = "Unknown"; return $ip; } echo getip(); ?> 1:來看看代碼: echo "(1)浏覽當前頁面的用戶的 IP 地址為:"; echo $_SERVER['REMOTE_ADDR']; echo ""; echo "(2)浏覽當前頁面的用戶的 IP 地址為:"; echo getenv('REMOTE_ADDR'); echo ""; echo "主機 www.baidu.com 的 IP 地址為:"; echo gethostbyname(www.baidu.com); 2:它的輸出結果為: (1)浏覽當前頁面的用戶的 IP 地址為:127.0.0.1 (2)浏覽當前頁面的用戶的 IP 地址為:127.0.0.1 主機 www.baidu.com 的 IP 地址為:61.135.169.105 3:關於獲取客戶端的 IP 地址,有倆方法: 第一個是使用: $_SERVER['REMOTE_ADDR'] 它正在浏覽當前頁面用戶的 IP 地址,這裡的輸出結果為 127.0.0.1,因為這是在本地測試,輸出的是我本地的環路地址。 第倆個是使用: getenv('REMOTE_ADDR') 這裡使用了函數 getenv : Gets the value of an environment variable(得到各種環境變量的值),返回值:Returns the value of the environment variable varname, or FALSE on an error(失敗的話返回 FALSE). 4:關於獲取服務器端的 IP 地址: gethostbyname(www.baidu.com) 這裡使用了函數 gethostbyname : Get the IP address corresponding to a given Internet host name(通過給定的一個主機名字而得到它的 IP 地址),返回值:Returns the IP address of the Internet host specified by hostname or a string containing the unmodified hostname on failure(失敗的話返回原樣的輸入字符主機名). 5:注意這裡的最後一句,也就是說,如果失敗的話,它會將原樣輸出, 例如: echo "無效主機 iwilldown 的 IP 地址為:"; echo gethostbyname("iwilldown"); 輸出無效主機 iwilldown 的 IP 地址為:iwilldown 當然,這個可不是 IP 地址….~~~~