根據(jù)中國的國情,寬帶共享遭受dns污染和HTTP攔截非常嚴(yán)重,造成網(wǎng)絡(luò)請求的不穩(wěn)定.但是ip/tcp協(xié)議一般不受影響。因此可以把域名先解析成ip并保存,以后都用ip訪問。客戶端啟動,把域名解析成ip,如果失敗的話,測試先前的ip是否可用并鑒別ip真?zhèn)?同下)。如果解析域名成功,發(fā)送加密信息到服務(wù)器返回解密后的內(nèi)容來測試ip的真?zhèn)?保證不被dns污染)。如果可能的話避免使用http協(xié)議,使用自定義協(xié)議。對于手機(jī)客戶端,甚至可以先用移動網(wǎng)絡(luò)解析域名,再使用自架設(shè)的WiFi熱點(diǎn)。以上方法僅對寬帶檢測后不完全斷網(wǎng)有效。
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ParseDomainName {
InetAddress myServer = null;
InetAddress myIPaddress = null;
String domainName = null;
public ParseDomainName(String domainName) {
this.domainName = domainName;
}
public InetAddress getServerIP() {
try {
myServer = InetAddress.getByName(domainName);
} catch (UnknownHostException e) {
}
return (myServer);
}
// 取得LOCALHOST的IP地址
public InetAddress getMyIP() {
try {
myIPaddress = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
}
return (myIPaddress);
}
public static void main(String[] args) {
ParseDomainName pdn = new ParseDomainName("www.baidu.com");
System.out.println("Your host IP is: " + pdn.getMyIP().getHostAddress());
System.out.println("The Server IP is :" + pdn.getServerIP().getHostAddress());
}
}