HNSDoH-checker/test.sh

56 lines
1.3 KiB
Bash
Raw Normal View History

2024-06-22 17:34:01 +10:00
#!/bin/bash
# Check if script has IP address as argument
if [ -z "$1" ]; then
# Get Node IPs
RESOLVED_IPS=$(dig +short hnsdoh.com)
NODE_IPS=($RESOLVED_IPS)
if [ ${#NODE_IPS[@]} -eq 0 ]; then
echo "No IP addresses resolved for hnsdoh.com. Exiting."
exit 1
fi
fi
# If script has IP address as argument, use that
if [ -n "$1" ]; then
# Add all arguments to NODE_IPS array
NODE_IPS=("$@")
fi
# Define the domain and host for dig commands
TLS_HOST="hnsdoh.com"
DOH_URL="https://hnsdoh.com/dns-query"
# Function to check dig command result
check_dig() {
if [ $? -eq 0 ]; then
echo "$(date) - $1 succeeded for NODE_IP=$NODE_IP"
else
echo "$(date) - $1 failed for NODE_IP=$NODE_IP"
# Save the failed IP
echo "$(date) - $1 failed for NODE_IP=$NODE_IP" >> monitor.log
fi
}
# Save test time
echo "$(date) - Test" >> monitor.log
# Loop over each IP and run the dig commands
for NODE_IP in "${NODE_IPS[@]}"
do
echo "$(date) - Running dig commands for NODE_IP=$NODE_IP"
# Run the dig commands
kdig +tls +tls-host=$TLS_HOST @$NODE_IP 1.wdbrn TXT +short
check_dig "kdig +tls"
kdig +tls-ca +https=@$DOH_URL @$NODE_IP 2.wdbrn TXT +short
check_dig "kdig +tls-ca +https"
kdig @$NODE_IP 3.wdbrn TXT +short
check_dig "kdig"
echo "$(date) - --------------------------------------------"
done