diff --git a/hutool-system/src/main/java/cn/hutool/system/HostInfo.java b/hutool-system/src/main/java/cn/hutool/system/HostInfo.java index 34c08f5c1..0880c876e 100644 --- a/hutool-system/src/main/java/cn/hutool/system/HostInfo.java +++ b/hutool-system/src/main/java/cn/hutool/system/HostInfo.java @@ -1,75 +1,123 @@ package cn.hutool.system; import java.io.Serializable; +import java.net.Inet4Address; import java.net.InetAddress; +import java.net.NetworkInterface; import java.net.UnknownHostException; +import java.util.Enumeration; /** * 代表当前主机的信息。 */ -public class HostInfo implements Serializable{ - private static final long serialVersionUID = 1L; +public class HostInfo implements Serializable { + private static final long serialVersionUID = 1L; - private final String HOST_NAME; - private final String HOST_ADDRESS; + private final String HOST_NAME; + private final String HOST_ADDRESS; + private final String HOST_NETWORK_CARD_ADDRESS; - public HostInfo() { - String hostName; - String hostAddress; + public HostInfo() { + String hostName; + String hostAddress; + String hostNetworkCardAddress; - try { - InetAddress localhost = InetAddress.getLocalHost(); + try { + InetAddress localhost = InetAddress.getLocalHost(); - hostName = localhost.getHostName(); - hostAddress = localhost.getHostAddress(); - } catch (UnknownHostException e) { - hostName = "localhost"; - hostAddress = "127.0.0.1"; - } + hostName = localhost.getHostName(); + hostAddress = localhost.getHostAddress(); + hostNetworkCardAddress = getInternetIp(); + } catch (UnknownHostException e) { + hostName = "localhost"; + hostAddress = "127.0.0.1"; + hostNetworkCardAddress = "127.0.0.1"; + } - HOST_NAME = hostName; - HOST_ADDRESS = hostAddress; - } + HOST_NAME = hostName; + HOST_ADDRESS = hostAddress; + HOST_NETWORK_CARD_ADDRESS = hostNetworkCardAddress; + } - /** - * 取得当前主机的名称。 - * - *
- * 例如:"webserver1"
- *
+ * 例如:"webserver1"
+ *
- * 例如:"192.168.0.1"
- *
+ * 例如:"192.168.0.1"
+ *
+ * 例如:"192.168.0.1"
+ *