IPv6地址无效

时间:2016-10-25 12:21:51

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

我收到了错误消息:

  

从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

任何人都有建议或推荐? 非常感谢你!

3 个答案:

答案 0 :(得分:6)

该网站同时具有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地址,但它无法连接到此地址。

答案 1 :(得分:0)

这可能不起作用,从代码中设置该属性。

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

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

答案 2 :(得分:0)

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

String serverAddress = "speedtest.tele2.net";