php中获取ipv6地址
问题:如何在php中获取客户端的ipv6地址,$_server[‘remote_addr’]是否可用?
答案:
要获取ipv6地址,不能直接使用$_server[‘remote_addr’],因为该变量仅获取ipv4地址。下列代码提供了获取ipv6地址的方法:
立即学习“PHP免费学习笔记(深入)”;
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;
登录后复制
这段代码首先检查是否存在$_server数组,然后依次尝试获取http_x_forwarded_for、http_client_ip、remote_addr这三个变量,并返回它们。这些变量中的任何一个都可能包含客户端的ipv6地址。
以上就是PHP如何获取客户端的IPV6地址?的详细内容,更多请关注php中文网其它相关文章!