中山学文培训php习题:PHP怎么样获取IP?
$ip=$_SERVER["REMOTE_ADDR"];
如是访问的IP,简单地
print?$_SERVER["REMOTE_ADDR"]?;
$_SERVER["REMOTE_ADDR"] 获得客户端IP
$_SERVER['SERVER_ADDR']获得服务器IP
获取客户端ip其实不是个简单的事儿,因为存在IP欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确。但是我们还是可以尽量写一些比较完善的获取客户端真正ip方法。使用php获取IP的方法能有很多,我简单给个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1、没有使用代理的情况
REMOTE_ADDR = 客户端IP
HTTP_X_FORWARDED_FOR = 没数值或不显示
2、使用透明代理的情况
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这个值类似: 221。
5。252。160, 203。98。182。163, 203。129。72。215)
这类代理服务器还是将客户端真实的IP发送给了访问对象,无法达到隐藏真实身份的目的。
3、使用普通的匿名代理
REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP (经过多个代理服务器时,这个值类似: 203。
98。182。163, 203。98。182。163, 203。129。72。215)
这种情况下隐藏了客户端的真实IP,但是向访问对象透露了客户端是使用代理服务器访问它 们的。
4、使用欺骗性代理服务器
REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似: 220。
4。251。159, 203。98。182。163, 203。129。72。215)
这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机 IP(220。
4。251。159)代替客户端的真实IP来欺骗它。
5、使用高级匿名代理服务器
REMOTE_ADDR = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 没数值或不显示,也可能是unknown。
答:如是访问的IP,简单地 print?$_SERVER["REMOTE_ADDR"]?;详情>>