java - getLocalHost() 显示错误的 IP 地址

标签 java ip inetaddress

我正在尝试执行以下代码。我是 Java 的新手,所以这是我第一次使用 java.net。程序没有错误,但我得到的本地主机地址为 192.168.56.1 而我的 IP 是 192.168.2.10

import java.net.*;
class InetAddressDemo
{
    public static void main(String[] args)
    {
        try
        {
            InetAddress address = InetAddress.getLocalHost();
            System.out.println("\nLocalhost Address : " + address + "\n");
        }
        catch (Exception e)
        {
            System.out.println(e);
        }
    }
}

最佳答案

您应该枚举网络接口(interface),因为您可能有多个接口(interface)。 getLocalHost() 仅返回您机器的环回地址。

Enumeration Interfaces = NetworkInterface.getNetworkInterfaces();
while(Interfaces.hasMoreElements())
{
    NetworkInterface Interface = (NetworkInterface)Interfaces.nextElement();
    Enumeration Addresses = Interface.getInetAddresses();
    while(Addresses.hasMoreElements())
    {
        InetAddress Address = (InetAddress)Addresses.nextElement();
        System.out.println(Address.getHostAddress());
    }
 }

关于java - getLocalHost() 显示错误的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875273/

相关文章:

javascript - 验证只有一个用户登录帐户

java - 如何检查 IP 地址是否来自 Java 中的特定网络/网络掩码?

java - 在java中获取eth0接口(interface)的IP地址只返回IPv6地址而不是IPv4

java - 在 Java 中嵌套 CompletionStages 以使内部 block 在外部 block 之前运行

java - Jbutton 与 Jpanel 和 JFrame 之间的区别?

c - 尝试写入 struct ip 时出现错误 “dereferencing pointer to incomplete type”

python - 在给定 Python 中的 IPv4 地址列表的情况下获取最小网络

java - 我如何在Java中获取域名

java - 仅接受用户对 ArrayList 的唯一输入

java - 具有复合键的单边 OneToMany 也是外键,应该使用 @IdClass 还是 @Embeddable?