Improved domainchecker.sh (non-interactive and interactive), various addendums to the documentation.

This commit is contained in:
2026-08-20 14:10:03 +02:00
parent d248af483d
commit 6444a814b0
3 changed files with 130 additions and 31 deletions
+58 -28
View File
@@ -3,38 +3,68 @@
# Maintainer: peignerpausz
# Version: 1.2
set -eou pipefail
set -eo pipefail
declare -a DOMAINS=()
declare -a RECORDS=()
usage() {
cat <<USAGE
Verwendung:
Domainchecker
> Welche Domains sollen gesucht werden?
> domain1.tld domain2.tld domain3.tld ...
> Welcher Record soll untersucht werden?
> A/AAAA/MX/TXT/SOA/NS/...
Verwendung:
$0 [OPTIONEN]
Oder interaktiv: $0
Optionen:
-d, --domains DOMAIN [DOMAINS...]
Zu prüfende Domains
-r, --records RECORD [RECORDS...]
Zu prüfende DNS-Records, z.B. A MX TXT
-h, --help
Diese Hilfe anzeigen
Beispiele:
$0 -d domain1.tld domain2.tld -r MX TXT
$0 --domains domain1.tld domain2.tld --records MX TXT
USAGE
}
echo "Welche Domains sollen gesucht werden? "
read DOMAINS
if [[ -z "$DOMAINS" ]]; then
{
echo -e "Fehler: Bitte Domains einfügen. \n" >&2
while [[ $# -gt 0 ]]; do
case "$1" in
-d | --domains)
shift
while [[ $# -gt 0 && "$1" != -* ]]; do
DOMAINS+=("$1")
shift
done
;;
-r | --records)
shift
while [[ $# -gt 0 && "$1" != -* ]]; do
RECORDS+=("$1")
shift
done
;;
-h | --help)
usage
exit 1
}
fi
echo "Welcher Record soll untersucht werden? "
read RECORD
if [[ -z "$RECORD" ]]; then
{
echo -e "Fehler: Bitte Record einsetzen. \n" >&2
usage
exit 1
}
fi
printf "\n"
for a in $DOMAINS; do
checker=$(dig +short $RECORD $a)
printf "+++Suchergebnisse für %s+++ \n%s\n %s\n====\n" "$a" "$checker"
exit 0
;;
esac
done
[[ ${#DOMAINS[@]} -eq 0 ]] && read -ra DOMAINS -p "Welche Domains sollen gesucht werden? " DOMAINS
[[ ${#RECORDS[@]} -eq 0 ]] && read -ra RECORDS -p "Welcher Records sollen gesucht werden? "
for domain in "${DOMAINS[@]}"; do
printf "\n==== %s ====\n" "$domain"
for record in "${RECORDS[@]}"; do
printf "++++ %s ++++\n" "$record"
result=$(dig +short "$record" "$domain")
if [[ -n "$result" ]]; then
printf "%s" "$result"
else
printf "Keine Einträge gefunden."
fi
echo
done
done