我有以下代碼:爲什麼java的給不同的DNS結果與IPv4Stack
import java.net.InetAddress;
public class lookup {
public static void main(String[] args) throws Exception {
for(String host : args){
for(InetAddress addr : InetAddress.getAllByName(host)){
System.out.println(addr.getHostAddress());
}
}
}
}
我們最近改變了對CNAME我們會打電話給主機foo.example.com從bar.example.com指向指向baz.example.com。如果我運行:
java -Djava.net.preferIPv4Stack=true lookup foo.example.com
我得到baz.example.com的IP地址,如預期的那樣。但是,如果我運行:
java lookup foo.example.com
我仍然得到bar.example.com的IP地址。
我確認bar.example.com和baz.example.com都沒有AAAA記錄。 和ping
都按預期方式解析baz.example.com。我如何獲得java的ipv6堆棧來正確解決這個問題?
更新:在切換回DNS後,我發現IPv4棧仍然解析爲baz.example.com,IPv6棧解析bar.example.com,所以這似乎是某種緩存問題。 – Stuart 2010-02-18 19:29:51