一、IP、域名和DNS三者关系
IP地址和域名在某些方面可以理解为等效关系。
DNS(Domain name system)则是关联IP和域名的域名系统,可以将域名映射到IP地址
。
二、IP与DNS的关系
- 域名是相对网站来说的,IP是相对网络来说的。
当输入一个域名的时候,网页做出的反应:输入域名----域名解析服务器(dns)解析成ip地址---访问ip地址---完成访问的内容---返回信息
(其实,当输入域名时,首先找的不是DNS服务器而是本地的一个文件C:\Windows\System32\drivers\etc\hosts
查看有无对应关系,如果有,就直接使用,若没有再去找DNS服务器。可以通过更改本机文件中的对应关系,屏蔽一些网站。) - Internet上的计算机IP是唯一的,一个IP地址对应一个计算机。
一台计算机上面可以有好多个服务,也就是一个ip地址对应了好多个域名,即一个计算机上由好多网站。
三、Java中将IP地址封装为InetAddress类
package IP和DNS;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressTest {
public static void main(String[] args) throws UnknownHostException {
// 获取本地主机的ip地址名和主机名
InetAddress localHost = InetAddress.getLocalHost();
System.out.println(localHost.getHostName());
System.out.println(localHost.getHostAddress());
// 也可以获取别的主机的地址名和主机名
InetAddress byName = InetAddress.getByName("www.baidu.com");
// 根据IP地址获取主机名不一定能正确获取到,因为有一个getAllByName(String
// host)函数,一个主机名可能会对应多个IP地址,服务器集群就会有这种情况,一台服务器就会有好多个IP地址
System.out.println(byName.getHostName());
System.out.println(byName.getHostAddress());
}
}