9th
十一月
十一月
JavaScript 书签 on delicious
9th
十一月
十一月
PHP 书签 on delicious
1st
十一月
十一月
PHP拾遗(三):如何取得客户端“真实”IP
之所以引用双引号,是因为取到的IP可能是客户端真实的IP,也可能是代理服务器的IP,也有可能根本取不到任何IP值。
在PHP中常使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址。但如果客户端是使用代理服务器来访问,那取到的是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。但只有客户端使用“透明代理”的情况下,$_SERVER["HTTP_X_FORWARDED_FOR"] 的值才是客户端真正的IP(如果是多层代理,该值可能是由客户端真正IP和多个代理服务器的IP组成,由逗号“,”分隔),而在“匿名代理”、“欺骗性代理”的情况下是代理服务器的IP值(如果是多层代理,该值可能由多个代理服务器的IP组成,由逗号“,”分隔),在“高匿名代理”的情况下是空值。
关于HTTP头信息中的REMOTE_ADDR、HTTP_FORWARDED_FOR值,我引用并改编了《获取用户IP地址的三个属性的区别》一文中的概述(假设客户端真实IP是221.5.252.160):
(全文…)






