Android实现“判断域名是否有效”的功能

来源:互联网 发布:linux解压zip命令行 编辑:程序博客网 时间:2024/05/24 15:39

       近期在做公司某一个app项目时,有这样的一个需求:公司app接口有部署在不同ip的服务器,通常我们app是直接请求带公司域名的接口服务器,但有可能遇到公司域名被DSN劫持的情况,这时就需要app转为请求另一个ip的接口服务器。

       这种情况就需要实现“判断域名是否有效”的功能。主要有两种方法:

第一种、通过ping命令来判断域名是否可ping通。

主要实现代码如下:

Process p1 = Runtime.getRuntime().exec("ping -c 1 -w 100 " + 域名);int status1 = p1.waitFor();if (status1 == 0) {   //域名能ping通,有效} else {   //域名ping不通}

第二种、通过域名解析来判断域名是否有效。

主要实现方法如下:

private void AnalyseDomain(String host){    String IPAddress = "";    InetAddress ReturnStr = null;    try {ReturnStr = java.net.InetAddress.getByName(host);IPAddress = ReturnStr.getHostAddress();    } catch (UnknownHostException e) {e.printStackTrace();//未知主机,域名解析失败    }    //域名解析成功}


以上两种方法都可实现“判断域名是否有效”的功能。

按照上述代码进行测试,在效率上,第一种方法较第二种方法要快几十~几百毫秒。

另外需要注意:判断域名是否有效,是一个耗时操作,要在子线程中进行,切记~

1 0