如何获取PHP中的客户端IP地址?

如何使用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 notation for IPv4 addresses,它的完整形式可以达到45个字符。所以如果你知道你在做什么,你可以使用39个字符,但如果你只想设置并忘记它,使用45)。

转载注明原文:如何获取PHP中的客户端IP地址? - 代码日志