PHP获得用户真实IP

REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
$_SERVER[‘REMOTE_ADDR’]; //访问端(有可能是用户,有可能是代理的)IP
$_SERVER[‘HTTP_CLIENT_IP’]; //代理端的(有可能存在,可伪造)
$_SERVER[‘HTTP_X_FORWARDED_FOR’]; //用户是在哪个IP使用的代理(有可能存在,也可以伪造)

三个值区别如下:

一、没有使用代理服务器的情况:

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

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

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

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

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

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

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

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

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

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

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

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

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

HTTP请求头和响应头

1,HTTP请求的基本概念    TCP/UPD/HTTP  *2,

HTTP请求头和响应头的含义 请求头: 

Accept: text/html,image/*(浏览器可以接收的类型) 

Accept-Charset: ISO-8859-1(浏览器可以接收的编码类型) 

Accept-Encoding: gzip,compress(浏览器可以接收压缩编码类型) 

Accept-Language: en-us,zh-cn(浏览器可以接收的语言和国家类型) 

Host: www.it315.org:80(浏览器请求的主机和端口)

 If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(某个页面缓存时间) 

Referer: http://www.it315.org/index.jsp(请求来自于哪个页面) 

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)(浏览器相关信息) 

Cookie:(浏览器暂存服务器发送的信息) 

Connection: close(1.0)/Keep-Alive(1.1)(HTTP请求的版本的特点) 

Date: Tue, 11 Jul 2000 18:23:51 GMT(请求网站的时间)  

响应头: 

Location: http://www.it315.org/index.jsp(控制浏览器显示哪个页面) 

Server:apache tomcat(服务器的类型) 

Content-Encoding: gzip(服务器发送的压缩编码方式)

 Content-Length: 80(服务器发送显示的字节码长度) 

Content-Language: zh-cn(服务器发送内容的语言和国家名) 

Content-Type: image/jpeg; charset=UTF-8(服务器发送内容的类型和编码类型)

 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务器最后一次修改的时间) 

Refresh: 1;url=http://www.it315.org(控制浏览器1秒钟后转发URL所指向的页面) 

Content-Disposition: attachment; filename=aaa.jpg(服务器控制浏览器发下载方式打开文件)

 Transfer-Encoding: chunked(服务器分块传递数据到客户端)

 Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务器发送Cookie相关的信息) 

Expires: -1(服务器控制浏览器不要缓存网页,默认是缓存) 

Cache-Control: no-cache(服务器控制浏览器不要缓存网页)

 Pragma: no-cache(服务器控制浏览器不要缓存网页)   

Connection: close/Keep-Alive(HTTP请求的版本的特点)  

 Date: Tue, 11 Jul 2000 18:23:51 GMT(响应网站的时间)