在Java中创buildInetAddress对象
我试图将一个IP地址或名称,都在string(即localhost
或127.0.0.1
)指定的地址转换为InetAdress对象。 没有构造函数,而是返回InetAddress的静态方法。 所以,如果我得到一个主机名,这不是一个问题,但如果我得到的IP号码? 有一个方法得到字节[],但我不知道如何可以帮助我。 所有其他方法获取主机名称。
InetAddress API文档
您应该能够使用getByName或getByAddress 。
主机名称可以是机器名称,例如“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} );