gpt4 book ai didi

java - InetAddress.getLocalHost().getHostAddress() 返回不需要的地址 Java

转载 作者:行者123 更新时间:2023-11-29 05:14:07 25 4
gpt4 key购买 nike

我尝试了 InetAddress.getLocalHost().getHostAddress() 来获取用户的互联网地址。它给了我 127.0.1.1 但我正在寻找更像 192.168.1.75 的东西。知道如何获得我正在寻找的地址吗?谢谢 - 泰勒

编辑:我有Ubuntu。记住这一点。我将我的程序导出到一个 jar 并在我妈妈的 Windows 笔记本电脑上运行它。它告诉我正确的地址。即 192.168.1.64。我戴的还是不对。

最佳答案

这意味着您以某种方式错误配置了本地解析器。getLocalHost()应该返回真实的本地IP地址,getLoopbackAddress()返回环回地址,通常是127.0.0.1(你说你得到的是 127.0.1.1;虽然这并非不可能,但我仍然认为这是一个错字?)

您可以在 getLocalHost() 的 Java 代码中识别出几种情况,这将使它返回环回地址而不是真实地址:

  1. 本地主机名设置为localhost

        String local = impl.getLocalHostName();
    // [...]
    if (local.equals("localhost")) {
    return impl.loopbackAddress();
    }
  2. 您的代码没有获取本地主机地址的权限(它可能是没有权限的小程序或 Java WebStart 应用程序)

    } catch (java.lang.SecurityException e) {
    return impl.loopbackAddress();
    }

然而,在其他情况下,它应该抛出一个 UnknownHostException

如果您的问题是 1,那么您需要将机器的主机名更改为可以解析回计算机 IP 号的名称。

如果您的问题是第 2 点,那么您需要确保您的代码获得适当的许可,例如通过签署 applet 或 webstart 应用程序。

关于java - InetAddress.getLocalHost().getHostAddress() 返回不需要的地址 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27200158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com