Como resolver uma lista de nomes de host para endereços IP ao consultar dig ou usar getent

Como resolver uma lista de nomes de host para endereços IP ao consultar dig ou usar getent

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.comou 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

informação relacionada