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

Как разрешить список имен хостов в IP-адреса при запросе dig или использовании getent

Мне нужно разрешить все записи «A» для домена в IP-адреса, если они существуют, при создании сценария bash.

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

Это то, что у меня есть

#!/bin/bash

pricks=(
   "c1.domain.com"
   "c2.domain.com"
   "c3.domain.com"
   "c4.domain.com"
   "c5.domain.com"
   "c6.domain.com"
   "c7.domain.com"
   "c8.domain.com"
   "c9.domain.com"
   "c10.domain.com"
   "c11.domain.com"
   "c12.domain.com"
   "c13.domain.com"
   "c14.domain.com"
   "c15.domain.com"
   "c16.domain.com"
   "c17.domain.com"
   "c18.domain.com"
   "c19.domain.com"
   "c20.domain.com"
)

for prick in "${pricks[@]}"
do
   echo "apf -d $prick \"$prick\"" >> add_apf_rules.sh
done
exit

Это дает мне следующий вывод, который я могу легко выполнить и который добавит имена хостов в файл apf deny hosts ...

apf -d c1.domain.com "c1.domain.com"
apf -d c2.domain.com "c2.domain.com"
apf -d c3.domain.com "c3.domain.com"
apf -d c4.domain.com "c4.domain.com"
apf -d c5.domain.com "c5.domain.com"
apf -d c6.domain.com "c6.domain.com"
apf -d c7.domain.com "c7.domain.com"
apf -d c8.domain.com "c8.domain.com"
apf -d c9.domain.com "c9.domain.com"
apf -d c10.domain.com "c10.domain.com"
apf -d c11.domain.com "c11.domain.com"
apf -d c12.domain.com "c12.domain.com"
apf -d c13.domain.com "c13.domain.com"
apf -d c14.domain.com "c14.domain.com"
apf -d c15.domain.com "c15.domain.com"
apf -d c16.domain.com "c16.domain.com"
apf -d c17.domain.com "c17.domain.com"
apf -d c18.domain.com "c18.domain.com"
apf -d c19.domain.com "c19.domain.com"
apf -d c20.domain.com "c20.domain.com"

Имена хостов не допускаются в "/etc/apf/deny_hosts.rules", поэтому мне нужен способ разрешить имя хоста в IP, если он существует, и поместить IP вместо имени хоста.

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

getent hosts c15.domain.com | awk '{ print $1 }'

Вы можете попробовать использовать host -l domain.com или dig domain.com AXFR (они оба делают одно и то же), но, скорее всего, это запрещено владельцем DNS-сервера из соображений безопасности.

Если это так, то получить все записи A невозможно.

РЕДАКТИРОВАТЬ: я не могу понять, о чем вы просите, поэтому я начинаю догадываться:

В: Как мне изменить свой первый скрипт, чтобы получить результат:

apf -d 66.96.162.92 "c1.domain.com"
apf -d 66.96.162.93 "c2.domain.com"
apf -d 66.96.162.94 "c3.domain.com"

А:

for prick in "${pricks[@]}"; do
   echo apf -d $(getent hosts "$prick") >> add_apf_rules.sh
done