Как получить полностью определенное имя (FQN) на Unix в сценарии удара?

Две быстрых вещи я могу думать:

1) Если у Вас есть "Ограниченные Пользователи" GPO, настроенный в Вашем домене, они могут становиться удаленными из Группы администраторов каждый раз существует gpupdate (~ каждые 15 минут)

2) Вы попытались щелкнуть правой кнопкой (или щелчок правой кнопкой SHIFT) на файле установки и выборе "Run as Administrator..."?

14
задан 13 April 2017 в 05:14
7 ответов

Я попробовал это на CentOS5:

host -TtA $SERVERNAME|grep "has address"|awk '{print $1}'

я должен запросить свой DNS в Режиме TCP. Если работы UDP в Вашей среде оставляют далеко опцию "T".

<час>

Примечание: на госте Ubuntu (VirtualBox) это не будет работать:

git@aHostname:~/$ host -TtA $(hostname -s)
Host aHostname not found: 3(NXDOMAIN)

Так для покрытия всех случаев:

fqn=$(host -TtA $(hostname -s)|grep "has address"|awk '{print $1}') ; \
if [[ "${fqn}" == "" ]] ; then fqn=$(hostname -s) ; fi ; \
echo "${fqn}"
11
ответ дан 20 November 2019 в 23:03

Вот один способ, которым я нашел fqn:

fqn=$(nslookup $(hostname -i)) ; fqn=${fqn##*name = } ; fqn=${fqn%.*} ; echo $fqn

, Другими словами, я имел к nslookup IP-адрес, который дает мне что-то как:

Server:         128.xxx.yyy.zzz
Address:        128.xxx.yyy.zzz#ww

aa.bb.cc.dd.in-addr.arpa        name = myserver.fully.qualified.name.

Оттуда, это был просто вопрос удаления, что я не хотел, до обработки строк удара .

, Возможно, существует более простой путь?

5
ответ дан 20 November 2019 в 23:03

Ваш метод работает, только если Вы правильно настроили свое имя хоста и имеете корректные настройки DNS, и т.д. Если у Вас есть все это, затем Вы уже знаете свой fqdn.

нет никакого надежного способа получить fqdn. Единственный IP-адрес может иметь несколько fqdn, и единственный fqdn может иметь несколько IP-адресов..., и много IP не имеет никакого fqdn вообще.

, Если Ваша машина непосредственно подключена к Интернету, просто используйте IP-адрес и сделайте обратный запрос DNS: host 1.2.3.4
, Но это очень часто не дает Вам желаемый ответ (просто пробуют Google, например).

5
ответ дан 20 November 2019 в 23:03

Разве hostname --fqdn не работает на Вас?

4
ответ дан 20 November 2019 в 23:03

В Ubuntu можно сделать hostname -A

2
ответ дан 20 November 2019 в 23:03

Для межплатформенной альтернативы, если Вы не возражаете использовать Python (выполнения, по крайней мере, на python 2.7 и python 3)

python -c 'import socket; print(socket.getfqdn())'
2
ответ дан 20 November 2019 в 23:03

OS X безопасный удар только метод, который, вероятно не будет работать другой *, отклоняет разновидности из-за вариаций в выводе команды:

fqn=$(nslookup $(hostname) | sed -n s/Name:.//p);

Python вероятен Ваш лучший выбор для широкой совместимости.

-1
ответ дан 20 November 2019 в 23:03

Теги

Похожие вопросы