php如何获取客户端IP地址

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 地址….~~~~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dxmcu

谢谢鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值