каков самый простой способ получить каноническое имя хоста из командной строки 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.
Это работает не для всех сайтов.