Как получить имя хоста вместе с доменным именем?

В unix (Solaris) есть ли какая-либо команда, которая возвращает имя хоста и имя домена вместе?

Например:

hostname -> servername domainname -> us.xyz.com 

Мне нужно: servername.us.xyz.com

Это будет работать, если ваш домен правильно настроен в файле resolv.conf. Вы также можете использовать команду domainname, о которой другие говорили, если ваше доменное имя NIS совпадает с доменом DNS.

 echo `uname -n`.`awk '/^domain/ {print $2}' /etc/resolv.conf` 

Команда

 hostname --fqdn (or -f) 

может также делать то, что вы хотите или нет, поскольку в моей системе я получаю (none) когда я запускаю имя domainname

Я тоже годами искал меня. Я просто работаю над этим, говоря:

 $(hostname).$(domainname) 

Вы можете определить функцию оболочки или псевдоним:

 fqdn () { echo $(hostname).$(domainname) } 

check-hostname | awk '{print $ NF}'

Я знаю, что это более старый поток, но мне нужно было потянуть имя хоста и имя домена отдельно в скрипте.

Ответ ealgumby на использование check-hostname был тем, что я никогда не видел раньше, поэтому я дал ему попытку добиться больших успехов для моих нужд. Я бы отметил это как полезный, но, видимо, у меня нет такой репутации.

Я установил домен следующим образом, перейдя через вывод из имени check-hostname.

 domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'` fqdn=`hostname`'.'${domain} 

Я сделал небольшое обходное решение для hostname и host :

 $ host $(hostname -i) | awk '{print $NF }' 

(Я использую Centos, но он должен работать в другом месте)

Получение домена без конечной точки:

 $ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}' 

В Solaris это работало хорошо для меня: извините за обратный ход, это обратная цитата рядом с номером 1 на клавиатуре qwerty или вы можете использовать команду $ (команда) в KSH

 getent hosts (backtick) /usr/bin/hostname (backtick) 

или

 getent hosts $(/usr/bin/hostname) 

пример:

 root@melauto:[/]# getent hosts $(/usr/bin/hostname) 10.4.19.241 melauto.sro.vic.gov.au melauto loghost root@melauto:[/]# 

getent запрашивает текущий механизм поиска имен, указанный в файле /etc/nsswitch.conf, и возвращает информацию, соответствующую поиску, здесь он возвращает информацию, найденную в /etc/hosts . если вы ищете информацию о хосте для другого хоста, который не находится в /etc/hosts , он будет выглядеть в DNS, если это определено в /etc/nsswitch.conf

В сценарии Unix bash, в Sun Solaris 10, я просто отобразил имя моего хоста:

echo "Мое имя хоста – $ (имя хоста)"