最近 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, 以太网卡:英特尔(R)82579LM千兆
更新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输出: Output of ipconfig
答案 0 :(得分:0)
您能否枚举所有IP地址,并看到您的旧IP仍然存在。也尝试重新启动机器并再次检查。请参阅下面的内容。
InetAddress.getLocalHost().getHostAddress() is returning 127.0.1.1
http://docs.oracle.com/javase/6/docs/api/java/net/NetworkInterface.html#getInetAddresses()
答案 1 :(得分: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。