我收到了错误消息:
从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
任何人都有建议或推荐? 非常感谢你!
答案 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";