PHP如何可靠地获取客户端IPv6地址?
php获取ipv6地址
本文将探究使用php在ipv6环境中获取客户端ip地址的不同方法。
使用$_server['remote_addr']获取ipv6地址
使用$_server['remote_addr']获取客户端ip地址可能会失效,因为它默认返回ipv4地址。对于ipv6地址,需要检查其他http头信息。
立即学习“PHP免费学习笔记(深入)”;
推荐方法
以下代码片段提供了一种获取ipv6地址的推荐方法:
if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $realip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if (isset($_SERVER["HTTP_CLIENT_IP"])) { $realip = $_SERVER["HTTP_CLIENT_IP"]; } else { $realip = $_SERVER["REMOTE_ADDR"]; }} else { if (getenv("HTTP_X_FORWARDED_FOR")){ $realip = getenv("HTTP_X_FORWARDED_FOR"); } else if (getenv("HTTP_CLIENT_IP")) { $realip = getenv("HTTP_CLIENT_IP"); } else { $realip = getenv("REMOTE_ADDR"); }}return $realip;
此方法通过检查http请求头信息来获取客户端ip地址。它提供了对ipv6地址更好的支持。