[php] view plain copy
php获取客户端IP地址的几种方法  
  
  
方法一         
<?php  
$iipp=$_SERVER["REMOTE_ADDR"];  
echo $iipp;  
?>  
  
  
方法二  
  
<?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  
function getIP()  
{  
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,因为这是在本地测试,输  
  
  
出的是本地的IP地址。  
  
  
  第二个是使用:  
  
  
  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 地址。 

  

posted on 2017-12-14 13:55  夏沫忆香  阅读(316)  评论(0编辑  收藏  举报