java实现将域名解析成ip示例
根据中国的国情,宽带共享遭受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());
}
}