如何使用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或同时获得两个地址?

昆汀

你不能

仅请求来自的IP地址可用。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章