浏览器显示IPv6,但查询返回IPv4-为什么?

边界

上下文:我正在研究网络应用程序,并且我注意到只有在我向公共IP为IPv4的人提供IPv4地址并且向公共IP为IPv6的人提供IPv4地址时,套接字才能正确打开。

我想通过使用与以下内容类似的选项来选择合适的过滤器:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.URL;
import java.net.MalformedURLException;

public class Test {
    public static void main(String[] args) throws MalformedURLException, IOException { 
        BufferedReader ipTypeChecker = new BufferedReader(
            new InputStreamReader(
                new URL("https://wtfismyip.com/text").openStream()
            )
        );

        System.out.println(ipTypeChecker.readLine());
    }
}

如果我只是用谷歌搜索我的IP,请转到此页面此页面,我的IP显示为IPv6地址,但是如果我使用上述代码查询这些页面,它将返回一个IPv4地址,为什么?

当然,如果我患有XY问题,请随时指出我出了问题的地方。

斯蒂芬·乌尔里希(Steffen Ullrich)

根据文档,如果两个地址均可用,则Java首选IPv4地址而不是IPv6地址:

java.net.preferIPv6Addresses(默认值:false)

如果操作系统上有IPv6可用,则默认首选项是优先使用IPv4映射的地址,而不是IPv6地址。这是出于向后兼容的原因...

目标主机具有两种地址:

wtfismyip.com.          3600    IN      AAAA    2604:4300:a:2c::1:1
wtfismyip.com.          3600    IN      A       69.30.217.90

这意味着Java将选择IPv4地址。浏览器通常会选择IPv6。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么request.getRemoteAddr()根据上下文返回ipv4或ipv6(后查询或Ajax查询)

为什么接口同时显示ipv6地址和ipv4

为什么是Get-DnsClientServerAddress | 选择AddressFamily输出而不是IPv4和IPv6

为什么lsof指示我的IPv4套接字是IPv6?

为什么.NET不使用嵌入的IPv4值解析某些IPv6?

为什么IPv6不像IPv4那样大量使用环回?

为什么 Java 将某些 IPv6 地址解释为 IPv4?

我同时拥有IPv4和IPv6公共地址。为什么?

为什么Windows 10比IPv6更喜欢IPv4?

为什么我同时拥有一个IPv4和IPv6地址?

对于 IPv4 和 IPv6,Net 函数的行为略有不同。为什么?

以下ipv6地址在ipv4中转换为什么:http:// [0 :: 1]:5001 /

IPv4标头包含校验和,但不包含在IPv6中,为什么?

为什么我在 Android 上看到两个不同的 IPv4 地址但 IPv6 地址相同?

IPv4“ arp -an”和“ arp who-has”的IPv6模拟是什么?

IPv4和IPv6之间的主要区别是什么?

关于ipv4和ipv6,硬编码是什么?

为什么IPv4 TCP连接显示为tcp6?

如何让浏览器更喜欢IPv6而不是IPv4?

为什么Ruby的IPAddr#family方法在IPv4地址上调用时返回2,而在IPv6地址上调用时返回10?

什么是IPv6,我为什么要关心?

IPv4和IPv6在套接字级别上有什么区别吗?

通过dhcp为带有debian的ipv4和ipv6自动配置接口的正确方法是什么?

来自同一台计算机上不同浏览器的IPv4和IPv6

为什么IPV4以10为基数表示

MIT为什么会有/ 8 IPv4块?

为什么我的IPV6在存储时会被截断?

为什么ARP在IPv6中被NDP取代?

为什么 IPv6 mngtmpaddr 停止响应?