如何使用 PHP 获取客户端 IP 地址?
我想保留通过 IP 地址登录我的网站的用户的记录。
Answer recommended by
PHP /collectives/php
Collective
无论您做什么,请确保不要信任客户端发送的数据。$_SERVER['REMOTE_ADDR']
包含连接方的真实IP地址。这是您能找到的最可靠的值。
但是,它们可能位于代理服务器后面,在这种情况下,代理可能已设置$_SERVER['HTTP_X_FORWARDED_FOR']
,但是这个值很容易被欺骗。例如,它可以由没有代理的人设置,或者 IP 可以是来自代理后面的 LAN 的内部 IP。
这意味着如果您要保存$_SERVER['HTTP_X_FORWARDED_FOR']
, 确保你also保存$_SERVER['REMOTE_ADDR']
价值。例如。通过将这两个值保存在数据库的不同字段中。
如果要将 IP 作为字符串保存到数据库中,请确保至少有足够的空间45 个字符. IPv6 https://en.wikipedia.org/wiki/IPv6它将继续存在,并且这些地址比旧的 IPv4 地址更大。
(请注意,IPv6 通常最多使用 39 个字符,但也有一个特殊的IPv4 地址的 IPv6 表示法 http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses其完整形式最多可包含 45 个字符。因此,如果您知道自己在做什么,则可以使用 39 个字符,但如果您只想设置并忘记它,请使用 45)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)