在Java中创buildInetAddress对象

我试图将一个IP地址或名称,都在string(即localhost127.0.0.1 )指定的地址转换为InetAdress对象。 没有构造函数,而是返回InetAddress的静态方法。 所以,如果我得到一个主机名,这不是一个问题,但如果我得到的IP号码? 有一个方法得到字节[],但我不知道如何可以帮助我。 所有其他方法获取主机名称。

InetAddress API文档

您应该能够使用getByNamegetByAddress

主机名称可以是机器名称,例如“java.sun.com”,也可以是其IP地址的文本表示

 InetAddress addr = InetAddress.getByName("127.0.0.1"); 

采用字节数组的方法可以像这样使用:

 byte[] ipAddr = new byte[]{127, 0, 0, 1}; InetAddress addr = InetAddress.getByAddress(ipAddr); 

从InetAddress API

主机名称可以是机器名称,例如“java.sun.com”,也可以是其IP地址的文本表示。 如果提供文字IP地址,则只检查地址格式的有效性。

该API是相当容易使用。

 // Lookup the dns, if the ip exists. if (!ip.isEmpty()) { InetAddress inetAddress = InetAddress.getByName(ip); dns = inetAddress.getCanonicalHostName(); } 

InetAddress.getByName也适用于IP地址。

来自JavaDoc

主机名称可以是机器名称,例如“java.sun.com”,也可以是其IP地址的文本表示。 如果提供文字IP地址,则只检查地址格式的有效性。

 ip = InetAddress.getByAddress(new byte[] { (byte)192, (byte)168, (byte)0, (byte)102} );