PHP前端开发

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

百变鹏仔 3周前 (12-15) #PHP
文章标签 客户端

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地址。