在Java中创建InetAddress对象

yot*_*moo 70 java ip

我试图将字符串(即localhost127.0.0.1)中的IP号或名称指定的地址转换为InetAdress对象.没有构造函数,而是返回InetAddress的静态方法.所以,如果我得到一个主机名,这不是问题,但如果我得到IP号怎么办?有一种方法可以获取byte [],但我不确定这对我有什么帮助.所有其他方法都获取主机名.

InetAddress API文档

Bal*_*a R 120

您应该能够使用getByNamegetByAddress.

主机名可以是计算机名称,例如"java.sun.com",也可以是其IP地址的文本表示形式

InetAddress addr = InetAddress.getByName("127.0.0.1");
Run Code Online (Sandbox Code Playgroud)

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

byte[] ipAddr = new byte[]{127, 0, 0, 1};
InetAddress addr = InetAddress.getByAddress(ipAddr);
Run Code Online (Sandbox Code Playgroud)

  • 当你的数字大于127时,你做了什么?例如IP 192.168.0.1.你用0xFF掩盖int吗?或者你只是将int转换为byte? (2认同)

小智 9

来自InetAddress的API

主机名可以是计算机名称,例如"java.sun.com",也可以是其IP地址的文本表示形式.如果提供了文字IP地址,则仅检查地址格式的有效性.


Mus*_*usa 6

ip = InetAddress.getByAddress(new byte[] {
        (byte)192, (byte)168, (byte)0, (byte)102}
);
Run Code Online (Sandbox Code Playgroud)