0

最近ipconfig显示的我系统的 IP 地址已从 10.2.200.76 更改为 10.2.200.75 但以下 java 代码返回的 IP 地址

InetAddress.getLocalHost().getHostAddress()

仍然是 10.2.200.76。我的问题是,“这怎么可能?” 我推测 DHCP 或 Java 有问题。


系统详细信息 - 操作系统:Windows 7,Java:Oracle JDK 7,以太网卡:Intel(R) 82579LM Gigabit

更新 1: Java 代码

public static void main(String[] args) {
    try {
        System.out.println("IP Address : " + InetAddress.getLocalHost().getHostAddress());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

java代码的输出> IP地址:10.2.200.76

ipconfig 输出: ipconfig 的输出

4

2 回答 2

0

不知何故,位于%SystemRoot%\System32\drivers\etc的主机文件有一个如下条目

localhost 10.2.200.76

我认为当我使用 java 时选择了这个

InetAddress.getLocalHost().getHostAddress()

所以,我将 localhost 条目更改为

localhost 127.0.0.1

现在 ipconfig 和上面的 java api 都返回相同的 IP 地址,即 10.2.200.75。

于 2016-09-28T05:40:03.327 回答
0

你能列举出所有的 IP 地址,看看你的旧 IP 还在 outout 中吗?也尝试重新启动机器并再次检查。请参阅下文。

InetAddress.getLocalHost().getHostAddress() 返回 127.0.1.1

http://docs.oracle.com/javase/6/docs/api/java/net/NetworkInterface.html#getInetAddresses()

于 2016-08-24T07:34:07.987 回答