我试图将由IP地址或名称指定的地址(都用String(即localhost
或127.0.0.1
))转换为InetAdress对象。没有构造函数,而是返回InetAddress的静态方法。因此,如果我获得了主机名,这不是问题,但是如果我获得了IP号怎么办?有一种方法可以获取byte [],但是我不确定这对我有什么帮助。所有其他方法均获取主机名。
我试图将由IP地址或名称指定的地址(都用String(即localhost
或127.0.0.1
))转换为InetAdress对象。没有构造函数,而是返回InetAddress的静态方法。因此,如果我获得了主机名,这不是问题,但是如果我获得了IP号怎么办?有一种方法可以获取byte [],但是我不确定这对我有什么帮助。所有其他方法均获取主机名。
Answers:
您应该可以使用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);
byte[] loopback = {0x7f,0x00,0x00,0x01};
这是一个用于获取任何网站的IP地址的项目,它非常有用而且易于创建。
import java.net.InetAddress;
import java.net.UnkownHostExceptiin;
public class Main{
public static void main(String[]args){
try{
InetAddress addr = InetAddresd.getByName("www.yahoo.com");
System.out.println(addr.getHostAddress());
}catch(UnknownHostException e){
e.printStrackTrace();
}
}
}