无效的IPv6地址。

6

我收到了以下错误信息:

从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"); 但它没有起到帮助作用。 - AbsolutBeginner
3个回答

8

该网站拥有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地址出了问题,而是连接到该地址失败了。

2
非常感谢您的澄清!它可以使用IP地址工作。 - AbsolutBeginner
2
如果可能的话,请联系该服务器的管理员,告诉他们他们的设置有问题 :) - Sander Steffann

6

尝试使用无需 "ftp://" 的地址

String serverAddress = "speedtest.tele2.net";

0

这个在代码中设置属性可能行不通。你试过在运行程序时将属性设置为命令行参数吗:

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


询问提问者是否做了某事,听起来更像是一条评论而不是答案。考虑将“Have you tried setting...”改为“尝试设置”或类似的表述。 - jonhopkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接