71 lines
1.4 KiB
Bash
71 lines
1.4 KiB
Bash
#! /usr/bin/env bash
|
|
# Domainchecker für schnelle Prüfung der MX-Records
|
|
# Maintainer: peignerpausz
|
|
# Version: 1.2
|
|
|
|
set -eo pipefail
|
|
declare -a DOMAINS=()
|
|
declare -a RECORDS=()
|
|
|
|
usage() {
|
|
cat <<USAGE
|
|
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
|
|
}
|
|
|
|
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 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
|