IPv6@FFDN

Listes des fournisseurs d'accès Internet associatifs membres de la fédération FFDN et de leur compatibilité avec l'IPv6

Nom Site Internet Mail
Ail-Network du Pays d'Autan Gandi.net
Alsace Réseau Neutre
Aquilenet
Association Ilico
AuverNET
Champagne-Ardenne Fournisseur associatif d'Accès à Internet TuxFamily
FAImaison
Franciliens.net
French Data Network
Grifon
IGWAN.NET Gandi.net
Internet Libre à Lyon et Saint Etienne
Internet Libre et Ouvert pour Tous dans l'Hérault
Lorraine Data Network
Neutrinet
Nice Data Network
PCLight ???
Rézine
Rhizome
SamesWireless Fournisseur Associatif d'Accès à Internet Gandi.net
SCANI ???
Teleragno
tetaneutral.net
Touraine Data Network Gandi.net

Script utilisé pour valider les données, version alarach à améliorer !

#!/bin/bash
FAI_SITE=`curl -s https://db.ffdn.org/api/v1/isp/?per_page=9999 |jq '.isps[] | select(.is_ffdn_member == true) | .ispformat.name + "|"+ .ispformat.website' | tr -d '"'`
while FAI= read -r i; do
echo "========================================================================================================"
echo $i |awk -F '|' '{print $1}'
site=`echo $i |awk -F '|' '{print $2}'| tr -d '"' |sed 's/http[s]*:\/\///;s/\///'`
site2=`echo $site | sed 's/www.//'`
echo "========================================================"
echo " WWW IPv6"
echo " ========"
if [ -n "$site" ]; then
echo $site
dig AAAA $site +short
echo "------------------------------------------------------"
echo " MX IPv6" 
echo " ======="
MAIL=`dig MX $site2 +short| awk -F ' ' '{print $2}' |sed 's/.$//'`
if [ -n "$MAIL" ]; then
echo "$MAIL" | while read n; do
echo "url: $n"
mx=`dig AAAA $n +short`
if [[ "$mx" =~ ^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b).){3}(b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b))|(([0-9A-Fa-f]{1,4}:){0,5}:((b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b).){3}(b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b))|(::([0-9A-Fa-f]{1,4}:){0,5}((b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b).){3}(b((25[0-5])|(1d{2})|(2[0-4]d)|(d{1,2}))b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$ ]]; then
echo $mx
fi
done
else
echo "NO MX"
fi
else
echo "NO SITE"
fi
done < echo $FAI_SITE