[Google Guava笔记](四)net
3?????? com.google.common.net:这个package包含了与主机标示(数字IP和域名)相关的工具方法和工具类。
?
3.1???HostSpecifier:与主机标示相关的类,内部用private字符串以ip或域名来保存主机地址。
内部类:
TeredoInfo:Teredo——一种通过网络地址转换器 (NAT)发送 IPv4 封装的IPv6 数据包的 IPv6转换技术。
?
静态方法:
?????????fromValid(Stringspecifier):返回HostSpecifier。将字符串specifier解析为ip或域名,根据解析结果创建HostSpecifier的实例。
?????????from(Stringspecifier):返回HostSpecifier。如果知道specifier是有效的就直接调用fromValid(),否则调用from()。
?????????isValid(Stringspecifier):判断specifier是否是有效的主机地址。
?
3.2??? InetAddresses:提供了与InetAddress类相关的静态工具方法。
静态方法:
forString(StringipString):如果ipString是ip地址则返回InetAddress,否则会抛出异常。
isInetAddress(StringipString):判断ipString是否是有效的ip地址。
?????????toUriString(InetAddressip):返回ip的字符串形式。IPV4的形式类似于:127.0.0.0,而IPV6的形式类似于:[2001:db8::1]。
forUriString(StringhostAddr):根据Uri字符串创建InetAddress的实例。
isUriInetAddress(StringipString):判断ipString是否为Uri形式的IP地址的字符串。
isCompatIPv4Address(Inet6Addressip):判断ip是否是IPv4兼容地址。
getCompatIPv4Address(Inet6Addressip):从ip获取IPv4地址,返回Inet4Address的实例。
?
如果IPv6地址实际上是IPv4的地址,后32位元可以用10进制数表示;因此:ffff:192.168.89.9等价于::ffff:c0a8:5909,但不等价于::192.168.89.9和::c0a8:5909。
is6to4Address(Inet6Addressip):判断ip是否是6to4地址。
get6to4Address(Inet6Addressip):从ip获取植入的IPv4地址,返回Inet4Address的实例。
?
????????? 6to4隧道可以将多个IPv6域通过IPv4网络连接到IPv6网络。它和IPv4兼容IPv6自动隧道类似,使用一种特殊的地址——2002:a.b.c.d:xxxx:xxxx:xxxx:xxxx:xxxx格式的6to4地址。其中a.b.c.d是内嵌在IPv6地址中的IPv4地址,可以用来查找6to4网络中的其它终端。6to4地址有64位网络前缀,其中前48位由路由器上的IPv4地址决定,用户不能改变,后16位由用户自己定义。这样,这个边缘路由器后面就可以连接一组网络前缀不同的网络。
isTeredoAddress(Inet6Address ip):判断ip是否是Teredo地址。
getTeredoInfo(Inet6Address ip):从ip获取TeredoInfo。
isIsatapAddress(Inet6Address ip):判断ip是否是Isatap地址。
getIsatapIPv4Address(Inet6Addressip):从ip获取IPv4地址,返回Inet4Address的实例。
hasEmbeddedIPv4ClientAddress(Inet6Addressip):判断ip中是否有嵌入的IPv4地址。
getEmbeddedIPv4ClientAddress(Inet6Addressip):获取ip中嵌入的IPv4地址。
getCoercedIPv4Address(InetAddressip):将ip强制转换为IPv4地址。
coerceToInteger(InetAddressip):把ip强制转换为int,不管它是不是IPv4地址。
fromInteger(intaddress):将address转换为Inet4Address。
fromLittleEndianByteArray(byte[]addr):将addr转换为InetAddress。
?
3.3???InternetDomainName:不可改变的,符合语法规范的互联网域名,不保证该域名存在。
静态方法:
fromLenient(Stringdomain):返回一个InternetDomainName的实例。
3.4???TldPatterns:提供了判断字符串是否为TLD的依据。
在因特网上,高端域(TLD)用来标识因特网址域名中最普通的部分,TLD要么是一般的高端域(gTLD),例如用于标识商业的"com"及用于标识教育的"edu"等等,要么就是国家代码高端域(ccTLD),例如用于标识法国的"fr"以及标识冰岛的"is"。
?
以上。
?