В чем разница между InetAddress.getLocalHost (). GetHostAddress () и InetAddress.getLocalHost (). GetAddress ()? - PullRequest
0 голосов
/ 19 декабря 2018

Вот код:

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

А адреса двух выходов разные, почему?

Или вопрос получше: в чем разница между этими двумя?

1 Ответ

0 голосов
/ 27 февраля 2019

getHostAddress() и getAddress() возвращают одну и ту же информацию, единственное различие между ними - представление информации.

getHostAddress() возвращает строку, которая является читаемым человеком текстом.Например, на моем компьютере это "192.168.29.106".

getAddress(), с другой стороны, возвращает массив байтов (4 байта в случае IPv4).Например, на моем компьютере это [-64, -88, 29, 106] - -64 является подписанным представлением байта 0xC0 (11000000), который указывает 192, если он не подписан, в то время как -88 представляет 0xA8 (10101000) и указывает 168, еслибез знака.29 представляет байт 0x1D, а 106 представляет байт 0x6A.

"192.168.29.106" или 0xC0 0xA8 0x1D 0x6A, это одно и то же.

...