Heim >Backend-Entwicklung >PHP-Tutorial >如何得到客户端真正的ip

如何得到客户端真正的ip

WBOY
WBOYOriginal
2016-06-13 10:27:54887Durchsuche

怎么得到客户端真正的ip?
我想知道怎么能得到客户端真正的ip地址,我看网上怎么说的都有,有没有权威一点的文档和说法?
网上流行的下面的说法对吗?
一、没有使用代理服务器的情况:

REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:【Transparent Proxies】

REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:211.98.182.163, 211.98.182.163, 211.129.72.215。

透明代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。
 

 
三、使用普通匿名代理服务器的情况:Anonymous Proxies

REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:111.98.182.163, 211.129.72.215。

普通匿名代理服务器隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:111.98.12.163, 111.98.12.163, 111.19.72.25。

欺骗性代理服务器告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示。

完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。这就是高度匿名的好处。。

------解决方案--------------------
应该差不多
------解决方案--------------------
試試這個,但也並非萬能

PHP code
//取得IP的方法,摘自DZFunction getIp(){    $Ip='';    if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {        $Ip=getenv('HTTP_CLIENT_IP');    } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {        $Ip=getenv('HTTP_X_FORWARDED_FOR');    } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {        $Ip=getenv('REMOTE_ADDR');    } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {        $Ip=$_SERVER['REMOTE_ADDR'];    }    return $Ip;}<br><font color="#e78608">------解决方案--------------------</font><br>
探讨

試試這個,但也並非萬能
PHP code
//取得IP的方法,摘自DZ
Function getIp(){
$Ip='';
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$Ip=getenv('HTTP_CLIENT_IP');……
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:截取GBK字符串的有关问题~Nächster Artikel:php取出数组单个值