在开发 Web 应用程序时,经常需要获取用户的真实 IP 地址。然而,由于代理服务器和负载均衡等因素的存在,直接从 $_SERVER
变量中获取的 IP 地址可能不准确。本文将介绍一种获取客户端真实 IP 地址的方法,并提供相应的 PHP 源代码。
常规方法获取 IP 地址
在 PHP 中,通常可以使用 $_SERVER['REMOTE_ADDR']
获取客户端的 IP 地址。然而,这种方法可能无法正确获取真实 IP 地址,特别是当用户通过代理服务器访问网站时。因为代理服务器会在请求转发时修改 REMOTE_ADDR
值,导致最终获取到的 IP 地址是代理服务器的 IP 地址而不是客户端的真实 IP 地址。
使用 HTTP 头信息获取真实 IP 地址
一种更可靠的方式是使用 HTTP 头信息来获取客户端的真实 IP 地址。常见的 HTTP 头信息包括 X-Forwarded-For
、X-Real-IP
等。这些头信息通常由代理服务器添加,用于标识原始客户端的 IP 地址。
下面是一个示例函数,用于从 HTTP 头信息中获取客户端真实 IP 地址:
function getRealIP(