首页 > 代码库 > (1)---(10)小结
(1)---(10)小结
1.IP地址(所有连入Internet的终端设备(包括计算机、PDA、打印机以及其他的电子设备)都有一个唯一的索引,这个索引被称为IP地址) :IPv4,IPv6
2. InetAddress类:Java中用于描述IP地址的类, 由于InetAddress没有public的构造方法,因此,要想创建InetAddress对象,必须得依靠它的四个静态方法 (1)InetAddress可以通过getLocalHost方法得到本机的InetAddress对象
(2)getByName:这个方法是InetAddress类最常用的方法。它可以通过指定域名从DNS中得到相应的IP地址。
(3)getAllByName:使用getAllByName方法可以从DNS上得到域名对应的所有的IP。这个方法返回一个InetAddress类型的数组。
(4)getByAddress:这个方法必须通过IP地址来创建InetAddress对象,而且IP地址必须是byte数组形式。
3.为什么不能直接通过IP访问网站 :服务端对此做了限制
4.DNS缓存 :当InetAddress类第一次使用某个域名(如www.csdn.net)创建InetAddress对象后,JVM就会将这个域名和它从DNS上获得的信息(如IP地址)都保存在DNS缓存中。当下一次InetAddress类再使用这个域名时,就直接从DNS缓存里获得所需的信息,而无需再访问DNS服务器,DNS缓存在默认时将永远保留曾经访问过的域名信息,但我们可以修改这个默认值
5.使用InetAddress类的getHostName方法获得域名
(1)使用getLocalHost方法创建InetAddress对象:如果InetAddress对象是用getLocalHost方法创建的,getHostName返回的是本机名
(2)使用域名创建InetAddress对象:用域名作为getByName和getAllByName方法的参数调用这两个方法后,系统会自动记住这个域名。当调用getHostName方法时,就无需再访问DNS服务器,而是直接将这个域名返回。
(3)使用IP地址创建InetAddress对象(得到域名):使用IP地址创建InetAddress对象时(getByName、getAllByName和getByAddress方法都可以通过IP地址创建InetAddress对象),并不需要访问DNS服务器。因此,通过DNS服务器查找域名的工作就由getHostName方法来完成。如果这个IP地址不存在或DNS服务器不允许进行IP地址和域名的映射,getHostName方法就直接返回这个IP地址。
*******只有通过使用IP地址创建的InetAddress对象调用getHostName方法时才访问DNS服务器。在其他情况,getHostName方法并不会访问DNS服务器,而是直接将域名或本机名返回。
6.使用getCanonicalHostName方法获得主机名:getCanonicalHostName方法和getHostName方法一样,也是得到远程主机的域名。但它们有一个区别。getCanonicalHostName得到的是主机名,而getHostName得到的主机别名
(1)使用getLocalHost创建InetAddress对象:在这种情况下getCanonicalHostName方法和getHostName方法得到的都是本机名
(2)使用域名创建InetAddress对象:
(3)使用IP地址创建InetAddress对象:在这种情况下,getCanonicalHostName方法和getHostName方法是完全一样的,也就是说,它们得到的都是主机名,而不是主机别名。
7.用getHostAddress方法获得IP地址:这个方法用来得到主机的IP地址,这个IP地址可能是IPv4的地址,也可能是IPv6的地址。
8.用getAddress方法获得IP地址:getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,而getAddress方法返回的是byte数组形式的IP地址
9.使用isXxx方法判断地址类型:十个方法来确定一个IP地址是否是一个特殊的IP地址
10.Inet4Address类和Inet6Address类: 为了区分IPv4和IPv6地址,Java提供了两个类:Inet4Address和Inet6Address,它们都是InetAddress类的子类
(1)---(10)小结