如果使用域名访问服务器,那么可能收到没有备案,或者因为是域名访问而走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地址。