我想知道给定的主机名(也可以是 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/