问题

如何使用PHP获取客户端IP地址?

我要记录通过他/她的IP地址登录我的网站的用户.



解决方法

无论您做什么,请确保不信任从客户端发送的数据. $ _ SERVER ['REMOTE_ADDR'] 包含连接方的真实IP地址.这是最可靠的价值,你可以找到.

但是,它们可以在代理服务器后面,在这种情况下代理可以设置 $ _ SERVER ['HTTP_X_FORWARDED_FOR'] ,但是这个值很容易被欺骗.例如,它可以由没有代理的人设置,或者IP可以是来自代理后面的LAN的内部IP.

这意味着如果要保存 $ _ SERVER ['HTTP_X_FORWARDED_FOR'] ,请确保保存 $ _ SERVER ['REMOTE_ADDR' ] 值.例如.通过将这两个值保存在数据库的不同字段中.

如果要以字符串形式将IP保存到数据库,请确保至少有 45个字符的空格. IPv6 将保留,这些地址比旧的IPv4地址大.

(请注意,IPv6通常最多使用39个字符,但还有一个特殊的 IPv6符号因为如果你知道你在做什么,你可以使用39个字符,但如果你只想设置和忘记它,请使用45). p>




相关问题推荐