Welcome 微信登录

首页 / 网页编程 / PHP / php如何获取客户端IP地址

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 地址….~~~~