首页 > 解决方案 > 如何使用 PHP 代码同时获取 IPv4 和 IPv6 地址?

问题描述

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

  1. IPv4随时获取地址或
  2. 获取IPv4IPv6地址

我使用此代码获取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或获得两个地址?

标签: phpipipv6ipv4

解决方案


你不能。

只有请求来自的 IP 地址可用。

没有可靠的方法来识别路由到同一台计算机的其他 IP 地址(我的笔记本电脑目前有 12 个 IP 地址)。


推荐阅读