首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

[Google Guava札记](四)net

2012-12-20 
[Google Guava笔记](四)net3?????? com.google.common.net:这个package包含了与主机标示(数字IP和域名)相

[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。

ffff:1.2.3.4格式叫做IPv4映射地址,是不建议使用的。而::1.2.3.4格式叫做IPv4一致地址
IPv4地址可以很容易的转化为IPv6格式。举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:0000:0000:0000:0000:0000:874B:2B34或者::874B:2B34。同时,还可以使用混合符号(IPv4-compatible address),则地址可以为::135.75.43.52。

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"。

?

以上。

?

热点排行