#!/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
Last updated %s
\n' "$DATE" >> "$TMPOUT" 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 } # Begin list of groups printf "Member | \n\tIPv4 | \n\tIPv6 | \n\tTLS report | \nno | " ipv6="no | " # Fetch DNS records dns="$(host "$hostname")" if printf '%s' "$dns" | grep -q "has address"; then dns_ipv4=true fi if printf '%s' "$dns" | grep -q "has IPv6 address"; then dns_ipv6=true fi if [ $dns_ipv4 = false -a $dns_ipv6 = false ]; then continue fi # Try site over HTTPS if try_url --inet4-only "$https"; then ((total_ipv4 ++)) has_ipv4=true fi if try_url --inet6-only "$https"; then ((total_ipv6 ++)) has_ipv6=true fi ssltest="" if [ "$has_ipv4" = true -o "$has_ipv6" = true ]; then ssltest="analyze" fi if [ "$has_ipv4" = true ]; then ipv4="yes | " elif [ "$dns_ipv4" = true ]; then ipv4="no HTTPS | " fi if [ "$has_ipv6" = true ]; then ipv6="yes | " elif [ "$dns_ipv6" = true ]; then ipv6="no HTTPS | " fi if [ "$has_ipv4" = true -o "$has_ipv6" = true ]; then name="$i" else name="$i" fi printf '\t
---|---|---|---|
%s | %s%s%s |
Members with an IPv4 website: %s/%s
Members with an IPv6 website: %s/%s