PHP获取客户端IP地址讲解

Posted 少年强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP获取客户端IP地址讲解相关的知识,希望对你有一定的参考价值。

<?php

http://www.cnblogs.com/chengmo/archive/2013/05/29/php.html (详情请参考这篇博文)

1.\'REMOTE_ADDR\'是远端IP,默认来自TCP连接是,客户端的Ip。它最准确,但是只会得到直接连服务器客户端IP。
如果对方通过代理服务器上网,就发现。获取到的是代理服务器IP了。

如:a->b(proxy)->c ,如果c 通过’REMOTE_ADDR’ ,只能获取到b的IP,获取不到a的IP了。*/

$ip=$_SERVER[\'REMOTE_ADDR\'];
echo $ip;

 

2.\'HTTP_X_FORWARDED_FOR\',\'HTTP_CLIENT_IP\' 为了能在大型网络中,获取到最原始用户IP,或者代理IP地址。对HTTp协议进行扩展。定义了实体头。

HTTP_X_FORWARDED_FOR = clientip,proxy1,proxy2 所有IP用”,”分割。
HTTP_CLIENT_IP 在高级匿名代理中,这个代表了代理服务器IP。
既然是http协议扩展一个实体头,并且这个值对于传入端是信任的,信任传入方按照规则格式输入的.

X-Forwarded-For 请求头格式非常简单,就这样:
X-Forwarded-For: client, proxy1, proxy2
*/

function getIP() {

if (isset($_SERVER[\'HTTP_X_FORWARDED_FOR\'])) {
$realip = $_SERVER[\'HTTP_X_FORWARDED_FOR\'];
} elseif (isset($_SERVER[\'HTTP_CLIENT_IP\'])) {
$realip = $_SERVER[\'HTTP_CLIENT_IP\'];
} else {
$realip = $_SERVER[\'REMOTE_ADDR\'];
}
return $realip;
}
echo getIP();

?>

以上是关于PHP获取客户端IP地址讲解的主要内容,如果未能解决你的问题,请参考以下文章

PHP获取客户端IP地址,服务器IP地址

PHP获取用户真实IP地址

php根据ip地址查地区

php获取客户端ip地址或者服务器ip地址

如何在 PHP 中获取客户端 IP 地址

如何在 PHP 中获取客户端 IP 地址