在PHP中读取ipv6而不是IPv4

时间:2016-02-29 19:17:07

标签: php ipv6 ipv4

当我的PHP网站读取我的访客IP地址时,它以IPv4格式显示。

但是,当我访问第三方网站(例如https://www.whatismyip.com/)时,我的访问者地址会显示IPv6格式。

如何让我的PHP网站阅读/收听/显示访客IP地址的较长IPv6格式?

1 个答案:

答案 0 :(得分:0)

如果您获得IPv6格式的IPv4地址,这可能是因为您的Web服务器正在侦听单个IPv6接口上的所有请求(IPv4和IPv6)。在这种情况下,当它读取对等地址时,它总是获得IPv6格式的地址,从而通过将:: ffff:添加到IPv4地址来映射IPv4地址。

所以这是您的网络服务器的配置,而不是PHP的配置。

如果要使用该格式的IPv4地址,可以使用固定字符串“:: ffff:”添加IPv4地址。但是你为什么要这样做?

此外,您将始终获得用于连接服务器的IP版本的IP地址。因此,当您想知道为什么没有获得真实(非映射)的IPv6地址时,可能是因为您的浏览器使用IPv4连接到服务器。这是因为您的服务器无法侦听IPv6请求,或者因为其IPv6连接速度比IPv4连接慢得多。在这种情况下,浏览器通常会回退使用IPv4来为用户提供更好的性能。