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
) ,帮助识别主机的网络名称。
问题
问题:
java.net.InetAddress
类在 Java 网络编程中的主要作用是什么?它封装了哪些核心信息?
答案:InetAddress
类的主要作用是作为 Java 对网络中主机 IP 地址的高层表示,封装主机的网络标识信息,为Socket
、ServerSocket
等网络类提供地址支持。它封装的核心信息包括主机的 IP 地址和主机名 / 域名(不包含端口信息)。问题:
InetAddress
类的getLocalHost()
方法有什么功能?调用后会返回什么?
答案:getLocalHost()
是InetAddress
类的静态方法,功能是获取代表本机的InetAddress
对象。调用后返回的对象中封装了本机的 IP 地址和主机名信息。问题:如何通过
InetAddress
类获取百度域名(www.baidu.com
)对应的 IP 地址?请简述步骤。
答案:步骤如下:- 调用
InetAddress.getByName("www.baidu.com")
方法,传入百度域名,获取对应的InetAddress
对象(该方法会自动进行 DNS 解析); - 调用该对象的
getHostAddress()
方法,即可得到百度的 IP 地址字符串。
- 调用
问题:
InetAddress
类的getHostAddress()
和getHostName()
方法的返回结果有何不同?
答案:getHostAddress()
返回的是对应主机的 IP 地址字符串(如110.242.68.66
);getHostName()
返回的是对应主机的主机名或域名(如本机可能返回电脑名,www.baidu.com
可能返回其域名)。问题:编写 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()); } } }