Preciso resolver todos os registros "A" de um domínio para endereços IP, se existirem, ao criar um script bash.
Procurei ver se havia um comando dig para recuperar todos os registros de um domínio, mas não consegui encontrar nenhum, então estou usando os nomes de host que sei que existem a partir de um visual que nos é fornecido por um determinado programa de bate-papo on-line .
Isso é o que eu tenho até agora
#!/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
Isso me dá a seguinte saída que posso executar facilmente e que adicionará os nomes de host ao arquivo 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"
Nomes de host não são permitidos em "/etc/apf/deny_hosts.rules", então preciso de uma maneira de resolver o nome do host para um ip, se existir, e colocar o ip em vez do nome do host.
Como posso usar getent para realizar minha tarefa?
getent hosts c15.domain.com | awk '{ print $1 }'
Responder1
Você pode tentar usar host -l domain.com
ou dig domain.com AXFR
(ambos fazem a mesma coisa), mas é muito provável que seja proibido pelo proprietário do servidor DNS por motivos de segurança.
Se for, não há como recuperar todos os registros A.
EDIT: Não consigo entender o que você está pedindo, então começo a adivinhar:
P: Como posso alterar meu primeiro script para obter resultado:
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"
A:
for prick in "${pricks[@]}"; do
echo apf -d $(getent hosts "$prick") >> add_apf_rules.sh
done