当前位置: 首页 > news >正文

java.net.InetAddress

1. 类的基本作用

java.net.InetAddress 类用于封装计算机的 IP 地址和 DNS 信息(不包含端口) ,是 Java 对网络中主机 IP 地址的 “高层表示” ,为网络编程提供基础的地址封装能力,在 Socket(套接字通信 )、ServerSocket(服务端套接字 )、URL(网络资源定位 )、DatagramSocket(UDP 通信套接字 )、DatagramPacket(UDP 数据报 )等网络相关类的使用中,常作为地址标识支撑功能实现。

2. 常用静态方法

  • getLocalHost():获取代表本机的 InetAddress 对象,该对象封装了本机的 IP 地址和主机名信息,可用于标识本机在网络编程场景里的地址。
  • getByName(String host):传入目标主机的 主机名(如 www.baidu.com )或 IP 地址(如 192.168.1.1 ),返回对应的 InetAddress 对象,获取目标主机的 IP 与主机名 。底层会自动连接 DNS 服务器进行域名解析(传入主机名时 ),将域名转换为 IP 。

3. 常用实例方法

  • getHostAddress():调用该方法,可从 InetAddress 对象中获取对应主机的 IP 地址字符串 ,如得到 192.168.1.100 这类结果,用于明确主机的 IP 标识。
  • getHostName():用于获取 InetAddress 对象对应的 主机名或域名 ,若为本地主机,返回本机主机名;若为网络域名(如百度 ),返回对应的域名(www.baidu.com ) ,帮助识别主机的网络名称。

问题

  1. 问题:java.net.InetAddress 类在 Java 网络编程中的主要作用是什么?它封装了哪些核心信息?
    答案:      InetAddress 类的主要作用是作为 Java 对网络中主机 IP 地址的高层表示,封装主机的网络标识信息,为 SocketServerSocket 等网络类提供地址支持。它封装的核心信息包括主机的 IP 地址和主机名 / 域名(不包含端口信息)。

  2. 问题:InetAddress 类的 getLocalHost() 方法有什么功能?调用后会返回什么?
    答案:     getLocalHost() 是 InetAddress 类的静态方法,功能是获取代表本机的 InetAddress 对象。调用后返回的对象中封装了本机的 IP 地址和主机名信息。

  3. 问题:如何通过 InetAddress 类获取百度域名(www.baidu.com)对应的 IP 地址?请简述步骤。
    答案:步骤如下:

    • 调用 InetAddress.getByName("www.baidu.com") 方法,传入百度域名,获取对应的 InetAddress 对象(该方法会自动进行 DNS 解析);
    • 调用该对象的 getHostAddress() 方法,即可得到百度的 IP 地址字符串。
  4. 问题:InetAddress 类的 getHostAddress() 和 getHostName() 方法的返回结果有何不同?
    答案:getHostAddress() 返回的是对应主机的 IP 地址字符串(如 110.242.68.66);getHostName() 返回的是对应主机的主机名或域名(如本机可能返回电脑名,www.baidu.com 可能返回其域名)。

  5. 问题:编写 Java 代码,使用 InetAddress 类获取本机的 IP 地址和主机名并打印,需处理可能的异常。
    答案:

    import java.net.InetAddress;
    import java.net.UnknownHostException;public class LocalHostDemo {public static void main(String[] args) {try {InetAddress localHost = InetAddress.getLocalHost();System.out.println("本机 IP 地址:" + localHost.getHostAddress());System.out.println("本机主机名:" + localHost.getHostName());} catch (UnknownHostException e) {System.out.println("获取本机信息失败:" + e.getMessage());}}
    }
    

http://www.xdnf.cn/news/1115947.html

相关文章:

  • Extended Nested Arrays for Consecutive Virtual Aperture Enhancement
  • RHCIA第二次综合实验:OSPF
  • 印度纱丽变革:传统靛蓝工艺在无性别斗篷中的延续
  • CMSIS(Cortex Microcontroller Software Interface Standard)ARM公司为 Cortex-M 系列处理器
  • docker 设置代理以及配置镜像加速
  • VISUALBERT:一个简单且高效的视觉与语言基线模型
  • JavaScript加强篇——第九章 正则表达式高级应用(终)
  • java+vue+SpringBoo中小型制造企业质量管理系统(程序+数据库+报告+部署教程+答辩指导)
  • archive/tar: unknown file mode ?rwxr-xr-x
  • Java行为型模式---策略模式
  • 低代码引擎核心技术:OneCode常用动作事件速查手册及注解驱动开发详解
  • 2023.05.06 更新前端面试问题总结(12道题)
  • VsCode的LivePreview插件应用
  • 【hivesql 已知维度父子关系加工层级表】
  • Pytorch实现感知器并实现分类动画
  • JAVA并发——什么是Java的原子性、可见性和有序性
  • git实操
  • composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
  • 【基础算法】倍增
  • 【开源项目】拆解机器学习全流程:一份GitHub手册的工程实践指南
  • 从儿童涂鸦到想象力视频:AI如何重塑“亲子创作”市场?
  • ABP VNext + 多级缓存架构:本地 + Redis + CDN
  • Linux的 iproute2 配置:以太网(Ethernet)、绑定(Bond)、虚拟局域网(VLAN)、网桥(Bridge)笔记250713
  • Prometheus 第一篇:快速上手
  • Vue配置特性(ref、props、混入、插件与作用域样式)
  • 第三章-提示词-解锁Prompt提示词工程核销逻辑,开启高效AI交互(10/36)
  • Linux|服务器|二进制部署nacos(不是集群,单实例)(2025了,不允许还有人不会部署nacos)
  • 学习C++、QT---23(QT中QFileDialog库实现文件选择框打开、保存讲解)
  • DVWA靶场通关笔记-XSS DOM(Medium级别)
  • 教程:如何查看浏览器扩展程序的源码