欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java实现将域名解析成ip示例

程序员文章站 2024-02-26 19:32:28
根据中国的国情,宽带共享遭受dns污染和http拦截非常严重,造成网络请求的不稳定.但是ip/tcp协议一般不受影响。因此可以把域名先解析成ip并保存,以后都用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());
 }

}