InetAddress.getLocalHost()。getHostAddress()和InetAddress.getLocalHost()。getAddress()有什么区别?

时间:2018-12-19 15:35:14

标签: network-programming ip

代码如下:

       `InetAddress me = InetAddress.getLocalHost();
        System.out.println("Local host address: " + me.getHostAddress());
        System.out.println("Adress: " + Arrays.toString(me.getAddress()));`

两个输出的地址不同,为什么?

还是一个更好的问题:两者之间有什么区别?

1 个答案:

答案 0 :(得分:1)

getHostAddress()getAddress()返回相同的信息,它们之间的唯一区别是信息表示形式。

getHostAddress()返回String,这是人类可读的文本。例如,在我的计算机上,它是"192.168.29.106"

getAddress()则返回字节数组(对于IPv4,则为4字节)。例如,在我的计算机中,它是[-64, -88, 29, 106]--64是字节0xC0 (11000000)的有符号表示,它指示192是否为无符号,而-88表示0xA8 (10101000),如果未签名则表示16829代表字节0x1D106代表字节0x6A

"192.168.29.106"0xC0 0xA8 0x1D 0x6A,它们是同一回事。