【问题标题】:How to get System IP using Java?如何使用 Java 获取系统 IP?
【发布时间】:2011-10-17 03:35:58
【问题描述】:

我试图制作一个带有按钮和文本区域/标签的 jFrame,其动机是能够检索我的系统 IP 地址,但问题是,当我使用此代码时

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try
        {
            InetAddress ownIP=InetAddress.getLocalHost();
            jTextField1.setText(ownIP.getHostAddress());
        }
        catch (Exception e)
        {
            jTextField1.setText(e.getMessage());
        }
    }

但这给了我回环 IP 地址 127.0.0.1 :( 我在我的系统上配置了静态 IP,但是该 IP 也没有显示 我使用 NetBeans IDE 7.0 和 Ubuntu 11.04

【问题讨论】:

标签: java network-programming


【解决方案1】:

您可以获得系统的所有 IP 地址。使用NetworkInterface.getNetworkInterfaces() 方法检索所有网络接口。对于每个返回的接口,使用getInetAddresses() 方法检索所有关联的地址。

【讨论】:

  • 您可能想要wlan0eth0lo 指环回。
  • 您可以使用 isLoopback() 方法过滤掉环回。如果您同时运行 IPv4 和 IPv6,您可能还希望通过检查 InetAddress 的类型与 Inet4Address 或 Inet6Address 来过滤其中一个。
【解决方案2】:

FWIW,InetAddress.getLocalHost().getHostAddress() 给了我我的真实 IP 地址。

仅供参考,我是在 Macbook 上的 Eclipse 中的单元测试中运行它的。

【讨论】:

  • 它仍然给我 127.0.0.1 作为我的输出:(
猜你喜欢
  • 2014-11-12
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多