Назад | Перейти на главную страницу

Командная строка linux: найти каноническое имя хоста

каков самый простой способ получить каноническое имя хоста из командной строки Linux?

Если это важно, моя оболочка - bash.

РАЗЪЯСНЕНИЕ: Мне нужно каноническое имя хоста другого хоста, либо по ip, либо по неканоническому имени хоста. Не каноническое имя хоста локального хоста.

Использовать dig(1). Для обычного поиска используйте:

dig full.hostname.xxx

и для обратного просмотра используйте:

dig -x 127.0.0.1

Также проверьте страницу руководства, чтобы узнать о других интересных вариантах.

Имя узла удаленного хоста не имеет необходимого отношения ни к одному из его сетевых имен. Вам нужно будет войти в систему и использовать hostname команда.

Если вы ищете полное доменное имя (FQDN) сетевого адреса, вы можете использовать инструменты запросов DNS, такие как dig или nslookup, как описано @firm и @Richard Holloway.

Чтобы было ясно, hostname просто вернет короткое имя. Использовать -f параметр; hostname -f чтобы получить полное имя.

Вы также можете использовать хозяин команда. Как в этом примере

host xxx.xxx.xxx.xyz

Результат будет примерно таким

xyz.xxx.xxx.xxx.in-addr.arpa domain name pointer name.domain.com

Чтобы найти fqdn удаленного хоста с IP xxx.xxx.xxx.xxx, вы можете использовать

nslookup xxx.xxx.xxx.xxx

и посмотрите, что ответ содержит

name = host.domain.net

Для канонических имен не существует «обратного поиска». То есть: для записи A нет способа получить список того, что записи CNAME указывают на нее.

Вот команда:

hostname

Вы можете найти IP-адрес по имени, а затем найти имя для этого IP-адреса. Для этого одной командой:

$ dig -x `dig +short www.google.com` | grep PTR.
 100.212.58.216.in-addr.arpa. 86309 IN  PTR lhr35s06-in-f4.1e100.net.
 100.212.58.216.in-addr.arpa. 86309 IN  PTR lhr35s06-in-f100.1e100.net.

Это работает не для всех сайтов.