Add check_dnsbl.sh
This commit is contained in:
commit
37825d9db5
50
check_dnsbl.sh
Normal file
50
check_dnsbl.sh
Normal file
@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Test if any IP4 and IP6 addresses of a hostname blocked on a DNSBL
|
||||
# 2024-02-23
|
||||
# by Sandros
|
||||
|
||||
# Parameter check
|
||||
if [[ $# -ne 2 ]]; then
|
||||
echo "Usage: ./${0##*/} <hostname> <blacklist service>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get IPs
|
||||
IPS=$(dig +short $1 A | sort -u)
|
||||
IP6S=$(dig +short $1 AAAA | sort -u)
|
||||
|
||||
IPSP=""
|
||||
|
||||
# Prepare IP4 addresses
|
||||
if [ ! -z "$IPS" ]; then
|
||||
for IP in $IPS; do
|
||||
# Check IP format
|
||||
if [[ ! ${IP##*[[:space:]]} =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||
# skip if invalid
|
||||
continue
|
||||
fi
|
||||
|
||||
# Reverse IP octet order
|
||||
IPSP="$IPSP $(sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\4.\3.\2.\1/' <<< ${IP##*[[:space:]]})."
|
||||
done
|
||||
fi
|
||||
|
||||
# Prepare IP6 addresses
|
||||
if [ ! -z "$IP6S" ]; then
|
||||
for IP6 in $IP6S; do
|
||||
IPSP="$IPSP $(sipcalc $IP6 | fgrep Expanded | cut -d '-' -f 2 | sed 's/://g' | rev | sed 's/[0-9a-f]/&./g')"
|
||||
done
|
||||
fi
|
||||
|
||||
# Loop through IPs
|
||||
listed=0
|
||||
for IP in $IPSP; do
|
||||
# Performs the actual lookup against blacklists
|
||||
if host -W 2 -t a $IP$2 >/dev/null 2>&1; then
|
||||
((listed++))
|
||||
fi
|
||||
done
|
||||
|
||||
echo $listed
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user