我在本機(jī)上用jsp寫了一個urlconnection抓網(wǎng)頁的程序用來生成html,可以用,放到server上剛開始也好用。突然有一 天,urlconnection無法解析該二級域名,應(yīng)該是導(dǎo)向net.net這個域名,在服務(wù)器上測試dns也沒問題,freebsd的fetch可以 正常訪問。
程序本身沒有問題,其他網(wǎng)站163 google 甚至域名下的其他二級域名也可以訪問,就某一特定二級域名無法訪問。
初步分析應(yīng)該是urlconnection的dns出了問題
于是 java.net.InetAddress.getByName("www.domain.com") 查詢到對應(yīng)的ip 驗證當(dāng)初的假設(shè)
在java的程序開發(fā)中,要查找一個域名的ip,最方便的辦法就是調(diào)用 java.net.InetAddress.getByName("www.domain.com"),就可以得到一個IP了。InetAddress內(nèi) 部有一個dns解析的緩存,而在默認(rèn)的情況下緩存的時間是“永久”,這個默認(rèn)的行為可以通過修改java.security文件或者在啟動時增加一個參數(shù) -Dsun.net.inetaddr.ttl=0 來禁止緩存.
問題迎刃而解,不過也浪費了好幾天的時間,拿出來分享一下