如何使用Java获取运行的计算机的域名?
例如,我的机器是一个域名可能是的服务器ec2-44-555-66-777.compute-1.amazonaws.com
我试过InetAddress.getLocalHost().getHostName()但是这并没有给我上面的名字.这给了我看起来类似的主机名ip-0A11B222
Edw*_*rzo 11
我想你可以尝试InetAddress.getCanonicalHostName()或InetAddress.getName()方法.假设你的网上有一个正确的名称服务,这两个应该可以解决问题.
getCanonicalHostName()的JavaDocs 说
获取此IP地址的完全限定域名.尽力而为方法,这意味着我们可能无法返回FQDN,具体取决于底层系统配置.
getCanonicalHostName为您提供完全限定的域名.我尝试过使用InetAddress.getLocalHost().getHostname()但它只是获取hostname您在命令行中看到的值,该值可能包含也可能不包含完全限定名称.
要检查是否使用命令行(在linux中)设置了完全限定的域名,请使用hostname --fqdn.
public String getCanonicalHostName()获取此IP地址的完全限定域名.尽力而为方法,这意味着我们可能无法返回FQDN,具体取决于底层系统配置.
/** Main.java */
import java.net.InetAddress;
public class Main {
public static void main(String[] argv) throws Exception {
byte[] ipAddress = new byte[] {(byte)127, (byte)0, (byte)0, (byte)1 };
InetAddress address = InetAddress.getByAddress(ipAddress);
String hostnameCanonical = address.getCanonicalHostName();
System.out.println(hostnameCanonical);
}
}
Run Code Online (Sandbox Code Playgroud)
示例来自:http: //www.java2s.com/Tutorials/Java/java.net/InetAddress/Java_InetAddress_getCanonicalHostName_.htm
| 归档时间: |
|
| 查看次数: |
30818 次 |
| 最近记录: |