如果使用域名访问服务器,那么可能收到没有备案,或者因为是域名访问而走IDC防火墙的问题,所以能用IP地址访问总归是比用域名访问好的。
但是如果使用IP访问,那么IP地址更换的时候,一些客户端就会遇到问题。为了解决IP地址更换和避免直接用域名访问的问题,我的做法是先解析域名的IP,然后再通过IP进行访问。
那么如何通过域名解析到IP呢?
以下代码会帮到你:
package test; import java.net.InetAddress; import java.net.UnknownHostException; /** * 通过域名解析IP * @author java小强 */ public class TestInetAddress { public static void main(String args[]) { TestInetAddress address = new TestInetAddress(); String domain = "www.163.com"; System.out.println("要获取域名的地址为: " + domain); InetAddress[] array = address.getServerIP(domain); int count = 0; for (int i = 0; i < array.length; i++) { System.out.println("ip:" + i + "--》" + array[i].getHostAddress()); count++; } System.out.println("该域名解析到IP: " + count); } /** * 获得某域名的IP地址 */ public InetAddress[] getServerIP(String domain) { InetAddress[] myServer = null; try { myServer = InetAddress.getAllByName(domain); } catch (UnknownHostException e) { e.printStackTrace(); } return myServer; } }
打印如下:
要获取域名的地址为: www.163.com ip:0--》111.161.22.27 ip:1--》111.206.169.23 ip:2--》125.39.1.138 该域名解析到IP: 3
可以看到,网易给163配备了三个IP地址。
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: