使用InetAddress

使用InetAddress17.2Java的基本网络支持  Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供普通字符串和application/x-www-form-urlencodedMIME字符串相互转换的静态方法。  17.2.1使用InetAddress

大家好,又见面了,我是你们的朋友全栈君。

17.2 Java的基本网络支持

  Java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供普通字符串和 application/x-www-form-urlencoded MIME 字符串相互转换的静态方法。

  17.2.1 使用InetAddress

  Java提供了InetAddress类来代表IP地址,InetAddress下还有2个子类:Inet4Address、Inet6Address,它们分别代表Internet Protocol version 4(IPv4)地址和Internet Protocol version 6(IPv6)地址。

  InetAddress类没有提供构造器,而是提供了如下两个静态方法来获取InetAddress实例:

  getByName(String host):根据主机获取对应的InetAddress对象。

  getByAddress(byte[] addr):根据原始IP地址来获取对应的InetAddress对象。

  InetAddress还提供了如下三个方法来获取InetAddress实例对应的IP地址和主机名:

  String getCanonicalHostName():获取此 IP 地址的全限定域名。

  String getHostAddress():返回该InetAddress实例对应的IP地址字符串(以字符串形式)。

  String getHostName():获取此 IP 地址的主机名。

  除此之外,InetAddress类还提供了一个getLocalHost()方法来获取本机IP地址对应的InetAddress实例。

  InetAddress类还提供了一个isReachable()方法,用于测试是否可以到达该地址。该方法的实现将尽最大努力试图到达主机,但防火墙和服务器配置可能阻塞请求,使其在某些特定的端口可以访问时处于不可达的状态。如果可以获得权限,则典型实现将使用 ICMP ECHO REQUEST;否则它将试图在目标主机的端口7 Echo)上建立 TCP 连接。下面程序测试了InetAddress的简单用法:

  程序清单:codes/17/17-2/InetAddressTest.java

  public class InetAddressTest

  {

  public static void main(String[] args)

  throws Exception

  {

  //根据主机名来获取对应的InetAddress实例

  InetAddress ip = InetAddress.getByName(”www.oneedu.cn”);

  //判断是否可达

  System.out.println(”oneedu是否可达:” + ip.isReachable(2000));

  //获取该InetAddress实例的IP字符串

  System.out.println(ip.getHostAddress());

  //根据原始IP地址来获取对应的InetAddress实例

  InetAddress local = InetAddress.getByAddress(new byte[]

  {127,0,0,1});

  System.out.println(”本机是否可达:” + local.isReachable(5000));

  //获取该InetAddress实例对应的全限定域名

  System.out.println(local.getCanonicalHostName());

  }

  }

  上面程序简单地示范了InetAddress类几个方法用法,InetAddress类本身并没有提供太多功能,它代表一个IP地址对象,是网络通信的基础,在后面介绍中将大量使用该类。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152241.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月23日 下午6:00
下一篇 2022年6月23日 下午6:00


相关推荐

  • vdbench – 性能压力测试工具

    vdbench – 性能压力测试工具vdbench 是一个 I O 工作负载生成器 通常用于验证数据完整性和度量直接附加 或网络连接 存储性能 vdbench 可以运行在 windows linux 环境 可用于测试文件系统或块设备基准性能

    2026年3月16日
    3
  • uml用例图详解_uml模型图

    uml用例图详解_uml模型图用例图的含义由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。其中用例和参与者之间的对应关系又叫做通讯关联(CommunicationAssociation)。用例图的作用用例图是需求分析中的产物,主要作用是描述参与者与和用例之间的关系,帮助开发人员可视化地了解系统的功能。借助于用例图,系统用户、系统分析人员、系统设计人员、领…

    2025年9月27日
    5
  • TFS 使用心得–权限管理

    TFS 使用心得–权限管理最近一段时间负责管理公司技术人员的 TFS 的权限分配 在此之前 我对 tfs 一点都不了解 没用过 也没听朋友用过 只在进公司时指导我的组长帮我把这个工具装上 告知要在上面报 bug 即 bug 管理在上面 之后的很长一段时间就只知道 tfs 可以管理 bug 可以管理文档 可以管理源代码 这点是从我负责测试的那个项目下的文件夹中看到的 至于怎么来管理 其中有多复杂 没有太多的了解 指导两个月前 接手 tfs 权限管理工作以来 才知道里面有多复杂 经理只告诉我怎么分配项目成员的项目权限 其他的都不知道 起初还以为这样

    2025年10月12日
    7
  • PHOTOSHOP MAC快捷键

    PHOTOSHOP MAC快捷键工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)矩形、椭圆选框工具【M】裁剪工具【C】移动工具【V】套索、多边形套索、磁性套索【L】魔棒工具【W】喷枪工具【J】画笔工具【B】像皮图章、图案图章【S】历史记录画笔工具【Y】像皮擦工具【E】铅笔、直线工具【N】模糊、锐化、涂抹工具【R】减淡、加深、海棉工

    2022年6月24日
    49
  • Netron 下载链接

    Netron 下载链接https://github.com/lutzroeder/Netron

    2022年8月30日
    6
  • dvwa通关攻略_猫里奥通关攻略

    dvwa通关攻略_猫里奥通关攻略简介:DVWA是一款基于PHP和mysql开发的web靶场练习平台,集成了常见的web漏洞如sql注入,xss,密码激活成功教程等常见漏洞。本教程将以DVWA为例,演示常见的web漏洞的利用和攻击。登录创建数据库(账号为admin,密码为password)登录后界面在dvwasecurity选项中,可以调整dvwa的难易程度,BruteForce(暴力激活成功教程)BruteForce即为暴力激活成功教程,通过枚举获取管理员的账号和密码,在实际的操作中,一般用来激活成功教程后台管理系统的登录。

    2026年4月15日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号