• InetAddress
  • 2025-09-19 06:56:11
  • ✅ Java 网络编程:InetAddress 类详解在 Java 中,InetAddress 类用于表示 IP 地址(IPv4 或 IPv6),它是 Java 网络编程中最常用的类之一,属于 java.net 包。

    1️⃣ InetAddress 的作用

    表示一个 IP 地址(域名或 IP 本身)

    提供主机名与 IP 地址的解析功能

    是进行 Socket 编程的基础类之一

    2️⃣ 常用方法

    方法名

    说明

    getLocalHost()

    获取本机的 InetAddress 对象

    getByName(String host)

    根据主机名或 IP 获取对应的 InetAddress 对象

    getAllByName(String host)

    获取与指定主机名关联的所有 IP 地址

    getHostName()

    获取该 IP 对象对应的主机名

    getHostAddress()

    获取该对象的 IP 地址字符串

    isReachable(int timeout)

    判断该地址是否可以在指定时间内连通

    3️⃣ 示例一:获取本机 IP 与主机名123456789import java.net.*;public class LocalHostInfo { public static void main(String[] args) throws UnknownHostException { InetAddress local = InetAddress.getLocalHost(); System.out.println("本机主机名: " + local.getHostName()); System.out.println("本机 IP 地址: " + local.getHostAddress()); }}

    📌 输出示例:

    12本机主机名: DESKTOP-123ABC本机 IP 地址: 192.168.1.100

    4️⃣ 示例二:根据域名获取 IP 地址123456789import java.net.*;public class DomainIP { public static void main(String[] args) throws UnknownHostException { InetAddress address = InetAddress.getByName("www.baidu.com"); System.out.println("主机名: " + address.getHostName()); System.out.println("IP 地址: " + address.getHostAddress()); }}

    📌 输出示例:

    12主机名: www.baidu.comIP 地址: 220.181.38.150

    5️⃣ 示例三:获取主机所有 IP 地址1234567891011import java.net.*;public class AllIPAddresses { public static void main(String[] args) throws Exception { InetAddress[] addresses = InetAddress.getAllByName("www.google.com"); for (InetAddress addr : addresses) { System.out.println("IP: " + addr.getHostAddress()); } }}

    📌 用途:获取网站的所有服务器地址,用于负载均衡场景分析。

    6️⃣ 示例四:判断地址是否可达12345678910import java.net.*;public class PingTest { public static void main(String[] args) throws Exception { InetAddress address = InetAddress.getByName("www.baidu.com"); boolean reachable = address.isReachable(3000); // 3秒超时 System.out.println("百度是否可达: " + reachable); }}

    7️⃣ 补充说明

    InetAddress 是一个 抽象类,不能直接实例化。

    它的两个子类是:

    Inet4Address:IPv4 地址

    Inet6Address:IPv6 地址

    ✅ 总结

    功能

    方法示例

    获取本机信息

    InetAddress.getLocalHost()

    通过域名获取 IP

    InetAddress.getByName("example.com")

    获取所有 IP 地址

    InetAddress.getAllByName(...)

    获取主机名

    getHostName()

    获取 IP 字符串

    getHostAddress()

    判断网络是否连通

    isReachable(timeout)