根據中國的國情,寬帶共享遭受dns污染和HTTP攔截非常嚴重,造成網絡請求的不穩定.但是ip/tcp協議一般不受影響。因此可以把域名先解析成ip并保存,以后都用ip訪問。客戶端啟動,把域名解析成ip,如果失敗的話,測試先前的ip是否可用并鑒別ip真偽(同下)。如果解析域名成功,發送加密信息到服務器返回解密后的內容來測試ip的真偽(保證不被dns污染)。如果可能的話避免使用http協議,使用自定義協議。對于手機客戶端,甚至可以先用移動網絡解析域名,再使用自架設的WiFi熱點。以上方法僅對寬帶檢測后不完全斷網有效。
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());
}
}