9th
十一月

JavaScript 书签 on delicious
马克龙 发布于: 2009年11月9日 开发与应用 标签: 评论 (0)

(全文…)

9th
十一月

PHP 书签 on delicious
马克龙 发布于: 开发与应用 标签: 评论 (0)

(全文…)

1st
十一月

PHP拾遗(三):如何取得客户端“真实”IP
马克龙 发布于: 2009年11月1日 开发与应用 标签:, 评论 (0)

之所以引用双引号,是因为取到的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):
(全文…)