代码之家  ›  专栏  ›  技术社区  ›  Shafiqul Islam

如何使用PHP代码同时获取IPv4和IPv6地址?

  •  0
  • Shafiqul Islam  · 技术社区  · 7 年前

    我有一个脚本向另一个服务器发送请求,但问题是 IPv6 不支持,如果我发送 IPv6 然后给出错误,我需要这两个中的一个:

    1. 得到 IPv4 地址一直在 或
    2. 两个都要 IPv4 IPv6 地址

    我用这个代码来获取 IP 地址

    function getRealIP()
        {
            if (isset($_SERVER["HTTP_CLIENT_IP"])) {
                $ip = $_SERVER["HTTP_CLIENT_IP"];
            } elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
                $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
            } elseif (isset($_SERVER["HTTP_X_FORWARDED"])) {
                $ip = $_SERVER["HTTP_X_FORWARDED"];
            } elseif (isset($_SERVER["HTTP_FORWARDED_FOR"])) {
                $ip = $_SERVER["HTTP_FORWARDED_FOR"];
            } elseif (isset($_SERVER["HTTP_FORWARDED"])) {
                $ip = $_SERVER["HTTP_FORWARDED"];
            } else {
                $ip = $_SERVER["REMOTE_ADDR"];
            }
    
            // Strip any secondary IP etc from the IP address
            if (strpos($ip, ',') > 0) {
                $ip = substr($ip, 0, strpos($ip, ','));
            }
            return $ip;
        }
    

    但是这个函数只返回一个 IPv 地址。我怎么能一直这样 IPv4 还是同时获取两个地址?

    2 回复  |  直到 7 年前
        1
  •  4
  •   Quentin    7 年前

        2
  •  3
  •   deceze    7 年前