Из информации в вашем вопросе я делаю вывод, что ваш вопрос касается команды linux hostname
. Это важно, поскольку BSD-вариант этой команды (например, найденный в системе macOS) имеет другой набор аргументов.
Страница man для linux hostname команда на самом деле очень специфична c относительно разница, и вы уже опубликовали отрывок из нее:
-i, --ip-address
Display the network address(es) of the host name. Note that this works only if the host name can be resolved. Avoid
using this option; use hostname --all-ip-addresses instead.
-I, --all-ip-addresses
Display all network addresses of the host. This option enumerates all configured addresses on all network interfaces.
The loopback interface and IPv6 link-local addresses are omitted. Contrary to option -i, this option does not depend
on name resolution. Do not make any assumptions about the order of the output.
«Разрешаемый адрес» (аргумент -i
) означает, что он разрешается через DNS. Вы можете получить аналогичные результаты, используя некоторую команду разрешения имен, например nslookup <yourhostname>
или getent hosts <yourhostname>
:
$ nslookup myhostname
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: myhostname
Address: X.X.X.X
С другой стороны, -I
перебирает все сетевые интерфейсы вашего хоста и видит, как они на самом деле настроен. Это означает, что он получает IP-адрес совершенно другим способом.