【问题标题】:invalid IPv6 address无效的 IPv6 地址
【发布时间】:2017-03-07 11:54:49
【问题描述】:

我收到错误消息:

从 ftp 服务器下载文件时出错:ftp://speedtest.tele2.net: IPv6 地址无效

从这几行:

String serverAddress = "ftp://speedtest.tele2.net";
FTPClient ftp = new FTPClient();
ftp.connect(serverAddress);

我不知道该怎么办?

我得到的唯一建议是关于这个系统属性,但这并没有解决问题。

java.net.preferIPv4Stack -> true
java.net.preferIPv6Addresses -> true

有人得到建议或推荐吗? 非常感谢!

【问题讨论】:

  • 是的,我试过System.setProperty("java.net.preferIPv6Addresses", "false");,但没有帮助。

标签: java ftp ipv6 ftp-client apache-commons-net


【解决方案1】:

该站点同时具有 IPv6 和 IPv4 地址

$ dig AAAA speedtest.tele2.net -> 2a00:800:1010::1
$ dig A speedtest.tele2.net    -> 90.130.70.73

如果可用,通常首选 IPv6。 但是,虽然服务器可以通过 IPv4 地址端口 21 访问,但无法通过 IPv6 地址访问,即 FTP 和 DNS 设置不一致。

来自 Java 的错误消息令人困惑,因为它实际上不是错误的 IPv6 地址,而是无法连接到该地址。

【讨论】:

  • 感谢您的澄清!它适用于 IP 地址。
  • 如果可能,请联系该服务器的管理员,告诉他们他们的设置已损坏 :)
【解决方案2】:

尝试使用不带“ftp://”的地址

String serverAddress = "speedtest.tele2.net";

【讨论】:

    【解决方案3】:

    这可能行不通,从代码中设置该属性。

    您是否尝试在运行程序时将该属性设置为命令行参数:

    java -Djava.net.preferIPv6Addresses=false -Djava.net.preferIPv4Stack=true -jar program.jar

    【讨论】:

    • 询问 OP 他们是否做了什么听起来更像是评论而不是答案。考虑将“您是否尝试过设置...”改写为“尝试设置”或类似的内容
    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2018-09-23
    • 2014-08-03
    • 2011-08-31
    相关资源
    最近更新 更多