InetAddress getLocalHost()不从C:\ WINDOWS\system32\drivers\etc\hosts返回预期的IP地址

Lar*_*ren 4 java networking localhost ip-address inetaddress

在文件C:\ WINDOWS\system32\drivers\etc\hosts中,我只有以下行

192.168.0.23    computername.domain.com   computername
Run Code Online (Sandbox Code Playgroud)

我跑的时候

InetAddress localhost = InetAddress.getLocalHost();
System.out.println("getLocalHost:" + localhost);
Run Code Online (Sandbox Code Playgroud)

我希望输出是

getLocalHost:computername/192.168.0.23
Run Code Online (Sandbox Code Playgroud)

但它出来了

getLocalHost:computername/192.168.0.107
Run Code Online (Sandbox Code Playgroud)

关于为什么会这样的想法?是否应该在其他文件中进行配置?

编辑

InetAddress.getByName('computername')
Run Code Online (Sandbox Code Playgroud)

产生与之相同的IP getLocalHost().

Bri*_*128 14

getLocalHost()返回您的一个网络适配器的实际IP.如果在命令行中执行ipconfig,则其中一个适配器应返回相同的地址.

如果您有多个适配器并且需要特定的适配器,则需要使用NetworkInterface.getNetworkInterfaces()然后从每个接口中提取InetAddresses列表.