java - 检查给定的主机名(例如 "abc.xyz.com")是否是 localhost

标签 java

我想知道给定的主机名(也可以是 FQDN)是否是 localhost。我在 InetAddress 中没有找到任何可以告诉我这一点的直接 API。最好的方法是什么?

编辑:我认为我没有清楚地解释问题。我有一个类似“abc.xyz.com”的输入。我需要验证该字符串是否代表 localhost 主机。

最佳答案

getHostAddress 输出 IP 地址,因此如果 IP 地址解析为 127.0.0.1 或 InetAddress.getLocalHost().getHostAddress() 则其为本地主机

例如:

    // change 192.168.154.169 to ip of your machine to test
    String[] hosts = { "192.168.154.169", "localhost", "google.com" };

    for (String host : hosts) {
        InetAddress address = InetAddress.getByName(host);
        boolean isLocalhost = "127.0.0.1".equals(address.getHostAddress())
                || InetAddress.getLocalHost().getHostAddress().equals(address.getHostAddress());
        System.out.println("Hostname: " + host + ", is local host: " + isLocalhost);
    }

输出:

主机名:192.168.154.169,是本地主机:true

主机名:localhost,是本地主机:true

主机名:google.com,是本地主机:false

关于java - 检查给定的主机名(例如 "abc.xyz.com")是否是 localhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32136929/

相关文章:

java - 将 int 数组的内容复制到 Java 中的 double 组?

java - Wildfly 如何使资源适配器全局化

java - 将字节解码为位图

java - ava.lang.ClassCastException : android. support.v7.widget.AppCompatTextView 无法转换为 android.widget.EditText

java - 是否有可能在 Java 8 中创建一个无限增长的惰性集合,由递归定义?

java - 无法通过 Java 中返回 Int 数组的函数传递 Int 变量

java - 通过按钮 Java Swing 打开一个新面板

java - ArrayList在java中给出问题。 x+y+z+w = 13 的正整数解

java - 连接到 web 服务导致 com.sun.xml.internal.ws.client.ClientTransportException : The server sent HTTP status code 200: OK

Java:导出到 JAR 后路径名不起作用