Chinaunix首页 | 论坛 | 博客
  • 博客访问: 53479
  • 博文数量: 17
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-15 12:22
文章分类
文章存档

2011年(1)

2008年(16)

我的朋友
最近访客

分类:

2008-09-19 11:54:20

  1.   
  2. unset($onlineip);  
  3.   
  4. if($_SERVER['HTTP_CLIENT_IP']){  
  5.      $onlineip=$_SERVER['HTTP_CLIENT_IP'];  
  6. }elseif($_SERVER['HTTP_X_FORWARDED_FOR']){  
  7.      $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];  
  8. }else{  
  9.      $onlineip=$_SERVER['REMOTE_ADDR'];  
  10. }  
  11.   
  12. echo $onlineip;  
  13.   
  14. ?>

在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。

'HTTP_CLIENT_IP'是用户的IP,'HTTP_X_FORWARDED_FOR'是代理的IP
这些IP头消息未必能够取得到(因为不同的浏览器不同的网络设备,可能发不同的IP头消息).所以PHP就尝试把每个IP头消息判断一下,若有,则取其中的一个.

阅读(849) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2008-10-08 16:28:03

sdfds