So lösen Sie eine Liste von Hostnamen in IP-Adressen auf, während Sie Dig abfragen oder Getent verwenden

So lösen Sie eine Liste von Hostnamen in IP-Adressen auf, während Sie Dig abfragen oder Getent verwenden

Ich muss beim Erstellen eines Bash-Skripts alle „A“-Einträge für eine Domäne in IP-Adressen auflösen, sofern sie vorhanden sind.

Ich habe nachgeschaut, ob es einen Dig-Befehl zum Abrufen aller Datensätze für eine Domäne gibt, konnte aber keinen finden. Daher verwende ich die Hostnamen, von denen ich aufgrund einer Grafik, die uns von einem bestimmten Online-Chat-Programm bereitgestellt wird, weiß, dass sie existieren.

Das habe ich bisher

#!/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

Dadurch erhalte ich die folgende Ausgabe, die ich problemlos ausführen kann und die die Hostnamen zur APF-Deny-Hosts-Datei hinzufügt ...

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"

Hostnamen sind in „/etc/apf/deny_hosts.rules“ nicht zulässig, daher brauche ich eine Möglichkeit, den Hostnamen in eine IP aufzulösen, falls vorhanden, und die IP anstelle des Hostnamens zu platzieren.

Wie kann ich getent verwenden, um meine Aufgabe zu erledigen?

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

Antwort1

host -l domain.comSie können versuchen , oder zu verwenden dig domain.com AXFR(beide bewirken dasselbe), aber dies wird vom Eigentümer des DNS-Servers aus Sicherheitsgründen höchstwahrscheinlich verboten.

Wenn dies der Fall ist, gibt es keine Möglichkeit, alle A-Datensätze abzurufen.

EDIT: Ich verstehe nicht, wonach Sie fragen, also fange ich an zu raten:

F: Wie kann ich mein erstes Skript ändern, um folgendes Ergebnis zu erhalten:

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

verwandte Informationen