`
lizaochengwen
  • 浏览: 643090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php 获取客户端的真实ip

    博客分类:
  • PHP
阅读更多
获取客户端的真实ip的一些思路分析,不一定很对,但起码正确率要好很多。
function GetIP(){ 
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) 
$ip = getenv("HTTP_CLIENT_IP"); 
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) 
$ip = getenv("REMOTE_ADDR"); 
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) 
$ip = $_SERVER['REMOTE_ADDR']; 
else 
$ip = "unknown"; 
return($ip); 
}

regist=off的问题
if ($register_globals!=1) {
@extract($_SERVER, EXTR_SKIP);
@extract($_COOKIE, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP);
@extract($_POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);
}
其中REMOTE_ADDR比较好理解,php手册上有说明它是预定的变量;而HTTP_x_FORWARDED_FOR呢,在网上找了一些资料,是这么说的
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
不过要注意的事,并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。

至于HTTP_CLIENT_IP,有篇贴子上说
'HTTP_CLIENT_IP'是用户的IP,'HTTP_X_FORWARDED_FOR'是代理的IP
这些IP头消息未必能够取得到(因为不同的浏览器不同的网络设备,可能发不同的IP头消息).所以PHP就尝试把每个IP头消息判断一下,若有,则取其中的一个. 您可能感兴趣的文章:
PHP 获取客户端真实IP地址多种方法小结
PHP获得用户使用的代理服务器ip即真实ip
php中获取远程客户端的真实ip地址的方法
原文地址:http://www.jb51.net/article/21162.htm
分享到:
评论

相关推荐

    php获取客户端真实ip

    php函数获取电脑客户端真实ip,包括代理

    PHP获取客户端真实IP地址的5种情况分析和实现代码

    主要介绍了PHP获取客户端真实IP地址的几种情况分析和实现代码,重点在几种干扰获得真实IP的几种情况介绍,需要的朋友可以参考下

    PHP 获取客户端真实IP地址多种方法小结

    PHP 获取客户端真实IP地址多种方法小结,需要的朋友可以参考下。

    PHP获取用户客户端真实IP的解决方案

    获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,...但是我们尽量使用比较完善的方法获取客户的ip,下面小编给大家分享PHP获取用户客户端真实IP的方法,一起看看吧

    php 获取ip所在区域实例

    php中获取ip所在区域的代码,获取信息包括城市和具体区域

    PHP获取真实客户端的真实IP

    本文主要介绍了PHP获取真实客户端的真实IP(REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR)的方法,具有很好的参考价值。下面跟着小编一起来看下吧

    thinkphp如何获取客户端IP

    thinkphp框架中系统内置了get_client_ip方法用于获取客户端的IP地址,使用示例: $ip = get_client_ip(); 除了thinkphp内置get_client_ip函数外,也可使用下面函数获取客户端IP地址。 $type表示返回类型 0 返回IP...

    THinkPHP获取客户端IP与IP地址查询的方法

    本文实例讲述了THinkPHP获取客户端IP与IP地址查询的方法。分享给大家供大家参考,具体如下: TP 中获取客户端IP地址的系统公共函数是:function get_client_ip()。返回值就是IP地址。 查询IP地址所在国家与地区的类...

    PHP 获取客户端 IP 地址的方法实例代码

    $_SERVER[‘HTTP_X_REAL_IP’]:nginx 代理模式下,获取客户端真实IP /** * 获取客户端IP地址 */ function real_ip() { $ip = $_SERVER['REMOTE_ADDR']; if (isset($_SERVER['HTTP_X_FORWARDE

    PHPWind和Discuz论坛程序如何获取用户的真实IP地址

    讨论获取客户端IP 地址前,我们首先下弄明白的是以下三个的具体含义:REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE...

    php获取ip及网址的简单方法(必看)

    如下所示: ...输出您访问网址的域名 echo $benji_ip=gethostbyname($_ENV['COMPUTERNAME']);输出服务器的ip $fangwen_ip=$_SERVER... 您可能感兴趣的文章:PHP准确取得服务器IP地址的方法PHP 获取客户端真实IP地址多种方

    php中获取远程客户端的真实ip地址的方法

    (1).REMOTE_ADDR:浏览当前页面的用户计算机的ip地址 (2).HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关 (3).HTTP_CLIENT_IP:客户端的ip 在PHP 中使用 $_SERVER[“REMOTE_ADDR”] 来取得客户端的 IP 地址,...

    通过PHP实现获取访问用户IP

    在php中自带了一个非常的简单的获取IP地址的全局变量,很多初学都获取IP都使用它了,但是对于这些我们一般用法是满足了,但是对于要求高精度这个函数还是不行的。 这个是最简单的方法,对于开了透明代理之类的是没有...

Global site tag (gtag.js) - Google Analytics