我试图将由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();
        }
    }
}