php如何获取客户端IP地址2014-10-18
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;?><?phpfunction 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.1053:关于获取客户端的 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 地址….~~~~