`
arcticfox9902
  • 浏览: 108584 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

[Google Guava笔记](四)net

阅读更多

3       com.google.common.net:这个 package包含了与主机标示 (数字 IP和域名 )相关的工具方法和工具类。

 

3.1    HostSpecifier:与主机标示相关的类,内部用 private字符串以 ip或域名来保存主机地址。

内部类:

TeredoInfo Teredo—— 一种通过网络地址转换器 (NAT) 发送 IPv4 封装的 IPv6 数据包的 IPv6 转换技术。

 

静态方法:

          fromValid(String specifier):返回 HostSpecifier。将字符串 specifier解析为 ip或域名,根据解析结果创建 HostSpecifier的实例。

          from(String specifier):返回 HostSpecifier。如果知道 specifier是有效的就直接调用 fromValid(),否则调用 from()

          isValid(String specifier):判断 specifier是否是有效的主机地址。

 

3.2    InetAddresses:提供了与 InetAddress类相关的静态工具方法。

静态方法:

forString(String ipString):如果 ipString ip地址则返回 InetAddress,否则会抛出异常。

isInetAddress(String ipString):判断 ipString是否是有效的 ip地址。

          toUriString(InetAddress ip):返回 ip的字符串形式。 IPV4的形式类似于: 127.0.0.0,而 IPV6的形式类似于: [2001:db8::1]

forUriString(String hostAddr):根据 Uri字符串创建 InetAddress的实例。

isUriInetAddress(String ipString):判断 ipString是否为 Uri形式的 IP地址的字符串。

isCompatIPv4Address(Inet6Address ip):判断 ip是否是 IPv4兼容地址。

getCompatIPv4Address(Inet6Address ip):从 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(Inet6Address ip):判断 ip是否是 6to4地址。

get6to4Address(Inet6Address ip):从 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(Inet6Address ip) :从ip 获取IPv4 地址,返回Inet4Address 的实例。

hasEmbeddedIPv4ClientAddress(Inet6Address ip) :判断 ip 中是否有嵌入的 IPv4 地址。

getEmbeddedIPv4ClientAddress(Inet6Address ip) :获取 ip 中嵌入的 IPv4 地址。

getCoercedIPv4Address(InetAddress ip) :将 ip 强制转换为 IPv4 地址。

coerceToInteger(InetAddress ip) :把 ip 强制转换为 int ,不管它是不是 IPv4 地址。

fromInteger( int address) :将 address 转换为 Inet4Address

fromLittleEndianByteArray( byte [] addr) :将 addr 转换为 InetAddress

 

3.3    InternetDomainName:不可改变的,符合语法规范的互联网域名,不保证该域名存在。

静态方法:

fromLenient(String domain):返回一个 InternetDomainName的实例。

3.4    TldPatterns:提供了判断字符串是否为 TLD的依据。

在因特网上,高端域 (TLD)用来标识因特网址域名中最普通的部分, TLD要么是一般的高端域 (gTLD) ,例如用于标识商业的 "com"及用于标识教育的 "edu"等等 ,要么就是国家代码高端域 (ccTLD),例如用于标识法国的 "fr"以及标识冰岛的 "is"

 

以上。

 

分享到:
评论

相关推荐

    guava学习笔记

    本学习笔记将重点介绍Guava中的几个核心工具类:Joiner、Splitter、Preconditions。 1. Joiner类与Splitter类 Joiner类的主要功能是将集合中的元素拼接成一个字符串。通过指定分隔符,可以灵活地将集合或Map中的...

    guava代码展示

    Guava是Google开发的一个Java库,它包含许多用于处理核心Java集合、并发、I/O、字符串、函数式编程等任务的实用工具类。这个压缩包文件看起来是一个学习资源,包括文档和代码示例,旨在帮助用户理解和应用Guava库。 ...

    notes-learning-guava:guava学习笔记

    Guava学习笔记笔记的大部分中文翻译内容来源于以下译者: 沉义扬,罗立树,何一昕,武祖校对:方腾飞感谢给我们带来的这一系列好文章。引言Guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如:集合...

    Guava-Event-Bus:Guava的EventBus源码学习

    Guava-Event-Bus 学习笔记 Guava的EventBus源码学习,基于Guava的18.0版本 分析者: ###1. 背景简介 EventBus是google的一个Java工具包其中的一个工具类,类似的有多个版本其中包括移植到Android端的 和改良的,功能...

    java网站建设基础源码笔记类型.rar

    最后,笔记可能涵盖了其他工具类和框架的使用,例如Spring框架用于依赖注入和AOP(面向切面编程),MyBatis简化SQL操作,还有可能涉及Apache Commons或Google Guava等实用工具库,它们提供了许多方便的函数和数据...

    Java泛型与容器详细笔记.pdf (带书签)

    Guava是Google提供的开源Java库,它包含了大量有用和高效的工具类,例如用于集合操作的工具类,它简化了常见的集合操作,提高了代码的可读性和可维护性。Apache Commons也是一个流行的开源Java库,它提供了很多实用...

    Java Concurrency In Practice Learning Note

    标签中提到的“源码”和“工具”,暗示这份学习笔记可能涉及到Guava库的使用,Guava是Google提供的一款广泛用于Java开发的开源库,特别在并发处理和缓存管理方面有着强大的功能。 在提供的压缩包文件中,我们有五份...

    谷歌师兄的leetcode刷题笔记-JavaNote:javaesguavajdkjdk8jsonlombokmdthreadjvmsprin

    谷歌师兄的leetcode刷题笔记 请叫我大师兄 Java Note Project 项目结构目录 bean 统一存放一些测试使用的model的bean,enum... 设计模式 简要说明 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码...

    gradle笔记.docx

    `dependencies`则定义项目所依赖的外部库,例如Google的Guava库和JUnit测试框架。在Gradle中,你可以使用Groovy的DSL(Domain Specific Language)语法来编写这些配置,使得代码更简洁易读。 Groovy语言特性在...

    996视频学习笔记-20211115.docx

    Guava是Google提供的一个强大的Java库,提供了许多实用功能,例如集合框架的扩展、缓存、并发工具等。在处理空集合时,Guava提供了更安全的API。比如,Guava的`Optional<T>`类可以用来表示一个值可能存在也可能不...

    acer_code:宏cer笔记本电脑代码目录

    2. **类库和框架**:可能引用了一些第三方库,如Apache Commons、Google Guava等,以提供额外的功能,如文件操作、网络通信等。 3. **配置文件**:.properties或.xml文件,用于配置应用的行为和设置,比如数据库...

    一个轻量级,高性能的缓存构架,以android缓存而设计为初衷,也可以应用于一般的Java项目中。.zip

    6. **Guava Cache**:Google的Guava库提供了强大的缓存功能,可能会详细讲解如何使用Guava Cache构建和管理缓存。 7. **JCache(JSR 107)**:Java标准的缓存API,介绍如何利用JCache接口进行缓存操作,以及它与...

    tpLectorDeNotas

    在实际开发中,Java的丰富的开源库(如Apache Commons、Guava等)和工具(如Maven或Gradle进行项目管理,JUnit进行单元测试)为"tpLectorDeNotas"的构建提供了极大的便利。同时,遵循良好的编程规范和文档编写,也有...

    Java高级编程资料,java高级编程技术,Java

    例如,Apache Commons、Google Guava等开源库提供了丰富的工具类。在Java标准库中,java.util.*包下有许多工具类,如Collections、Arrays、Date和Calendar等,它们提供了排序、查找、复制、格式化日期等操作。学会...

    Java夜未眠.zip

    Java语言的特点包括跨平台性(得益于"一次编写,到处运行"的JVM)、强大的库支持(如Apache Commons、Google Guava等)、以及丰富的生态系统(如Maven Central仓库)。在实际开发中,Java被广泛应用于Web应用、大...

    java多线程_设计模式_各种技术(我的书架)

    在Java多线程的实践中,通过阅读和理解开源项目的源码,如Apache Commons Pool、Google Guava的线程池管理,可以帮助我们更好地理解和运用线程管理。同样,设计模式的源码实现,如Spring框架中的策略模式、工厂模式...

    leetcode中国-repos-plan.github.io:回购计划.github.io

    它旨在帮助开发者通过Markdown格式整理和分享他们的学习笔记,同时也涵盖了其他技术领域如Vue.js、Node.js、Android学习以及Guava库的常用解析。 【描述】该项目可能是正在进行中的工作,因为提到了"可能未完结",...

    PubLearnNotes

    9. **框架与库**:Spring、MyBatis等流行框架的使用,以及第三方库如Apache Commons、Google Guava等。 10. **设计模式**:学习并应用常见的23种设计模式,提高代码的可读性和可维护性。 综上所述,"PubLearnNotes...

    高级java笔试题-itresource:程序开发技术资源集合

    heavyz的Tomcat学习笔记(包括启动流程分析、启动脚本分析) ] () [ java8 新特性讲解系列文章 ] () [ Java 从Jar文件中动态加载类 ] () [ Java并发源码分析 - ThreadPoolExecutor ] () [ java ClassLoader 基本原理 ]...

Global site tag (gtag.js) - Google Analytics