В сценарии я хочу иметь возможность легко записать IP-адрес куда-нибудь, поэтому я решил использовать dig (или аналогичную команду) с обратными галочками.
Однако самый простой вывод, который я смог придумать для параметров копания, - это
> dig -t A +noall +answer www.google.com
www.google.com. 300 IN A 173.194.66.106
www.google.com. 300 IN A 173.194.66.104
В любом случае (дополнительный аргумент, другой инструмент вместо копания?), Чтобы избавиться от мусора, кроме IP-адреса ?? (И, пожалуйста, не говорите мне использовать sed.)
Спасибо
На коробке CentOS я должен передать
dig +short www.google.com
74.125.132.147
74.125.132.99
74.125.132.103
74.125.132.104
74.125.132.105
74.125.132.106
Если вам нужен только один адрес, тогда
dig +short www.google.com | head -1
или
dig +short www.google.com | tail -1
sed
жизнеспособный вариант, и полный отказ от него заблудший в лучшем случае.
В любом случае попробуйте
dig -t A +noall +answer www.google.com | cut -f 6 | tail -1
Для скриптов (особенно при выполнении обратного просмотра в отчетах), если вам не нужно тестировать конкретную функциональность DNS, вам лучше использовать getent hosts ...
Таким образом, если вы запускаете локальный демон кэширования DNS (например, nscd или локальный DNS-сервер кэширования, такой как dnsmasqd), вы получаете прирост производительности и кэширования и не загружаете DNS-сервер гораздо большим трафиком, чем нужно.
Я написал описание с примером в AWK. Надеюсь, это поможет людям избежать боли, с которой я работаю.