diff --git a/buildlist b/buildlist
index fb2ef4c..b3feaad 100755
--- a/buildlist
+++ b/buildlist
@@ -1,15 +1,6 @@
#!/bin/bash
-# This program is free software: you can redistribute it and/or modify it under the terms of the
-# GNU Affero General Public License as published by the Free Software Foundation, either version 3
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License along with this program.
-# If not, see .
+FLANAGAN="5.75.131.131"
source members.sh
NUMGRP="${#MEMBERS[@]}"
@@ -39,8 +30,7 @@ total_ipv4=0
total_ipv6=0
try_url() {
- # Use shell redirection to send all output to /dev/null because cURL is noisy at times, even with --silent
- wget -O/dev/null --timeout 3 "$1" "$2" &>/dev/null
+ curl --max-time 4 --connect-timeout 3 --resolve "*:443:$2" "$1" &>/dev/null
}
# Begin list of groups
@@ -50,20 +40,24 @@ for i in "${MEMBERS[@]}"; do
hostname="$i.user.zeus.gent"
https="https://$hostname"
+ ipv4=""
+ ipv6=""
dns_ipv4=false
dns_ipv6=false
has_ipv4=false
has_ipv6=false
- ipv4="
no | "
- ipv6="no | "
+ ipv4_report="no | "
+ ipv6_report="no | "
# Fetch DNS records
- dns="$(host "$hostname")"
+ dns="$(host "$hostname" "$FLANAGAN")"
if printf '%s' "$dns" | grep -q "has address"; then
dns_ipv4=true
+ ipv4="$(printf '%s' "$dns" | sed -En '/has address/{s/^.* address //p;q}')"
fi
if printf '%s' "$dns" | grep -q "has IPv6 address"; then
dns_ipv6=true
+ ipv6="$(printf '%s' "$dns" | sed -En '/has IPv6 address/{s/^.* address //p;q}')"
fi
if [ $dns_ipv4 = false -a $dns_ipv6 = false ]; then
@@ -71,11 +65,11 @@ for i in "${MEMBERS[@]}"; do
fi
# Try site over HTTPS
- if try_url --inet4-only "$https"; then
+ if [ $dns_ipv4 = true ] && try_url "$https" "$ipv4"; then
((total_ipv4 ++))
has_ipv4=true
fi
- if try_url --inet6-only "$https"; then
+ if [ $dns_ipv6 = true ] && try_url "$https" "$ipv6"; then
((total_ipv6 ++))
has_ipv6=true
fi
@@ -85,14 +79,14 @@ for i in "${MEMBERS[@]}"; do
ssltest="analyze"
fi
if [ "$has_ipv4" = true ]; then
- ipv4="yes | "
+ ipv4_report="yes | "
elif [ "$dns_ipv4" = true ]; then
- ipv4="no HTTPS | "
+ ipv4_report="no HTTPS | "
fi
if [ "$has_ipv6" = true ]; then
- ipv6="yes | "
+ ipv6_report="yes | "
elif [ "$dns_ipv6" = true ]; then
- ipv6="no HTTPS | "
+ ipv6_report="no HTTPS | "
fi
if [ "$has_ipv4" = true -o "$has_ipv6" = true ]; then
@@ -100,7 +94,7 @@ for i in "${MEMBERS[@]}"; do
else
name="$i"
fi
- printf '\t%s | %s%s%s |
\n' "$name" "$ipv4" "$ipv6" "$ssltest" >> "$TMPOUT"
+ printf '\t%s | %s%s%s |
\n' "$name" "$ipv4_report" "$ipv6_report" "$ssltest" >> "$TMPOUT"
done
printf '\n' >> "$TMPOUT"