diff --git a/perl/get_no_v6_websites.pl b/perl/get_no_v6_websites.pl index ba2121a..0690866 100755 --- a/perl/get_no_v6_websites.pl +++ b/perl/get_no_v6_websites.pl @@ -5,29 +5,87 @@ use v5.14; die "usage : ./$0 website_list.txt" if @ARGV != 1; -say "

"; - my @tab; +my %dom; -while(<>) { - chomp; - last if $_ eq ""; +sub get_urls { + while(<>) { + chomp; + last if $_ eq ""; - if(m#/#) { - $_ =~ s#https?://##; - @tab = split '/', $_; - $_ = $tab[0]; - } + if(m#/#) { + $_ =~ s#https?://##; + @tab = split '/', $_; + $_ = $tab[0]; + } - my $ret = `/usr/bin/dig +short AAAA $_`; + # securité + @tab = split ';', $_; + $_ = $tab[0]; + m/^([0-9a-zA-Z\.-]+)/; + $_ = $1; - if(length $ret != 0) { - say "$_ is ok
"; - } - else { - say "WARNING: $_ NOT OK
"; + $dom{$_} = 0; } } -say "

"; +sub test_ipv6 { + my $domain = shift; + my $ret = `/usr/bin/dig +short AAAA $domain`; + + if(not length $ret) { # no ipv6 ? check www.$domain + $ret = `/usr/bin/dig +short AAAA www.$domain`; + } + + if(length $ret != 0) { # there is at least an IPv6 configured + chomp $ret; + + my @var = split "\n", $ret; + for(@var) { + + chomp $ret; + next unless /:/; + say $ret; + + # we try to reach the website's server + my $retping = + `/bin/ping6 -i 0.5 -c 2 $ret | grep ' 0% packet loss'`; + chomp $retping; + + if(length $retping) { + $dom{$domain}++; + } + } + + } + +} + +sub check_reachability { + + say ''; +} + +sub do_html { + my @passed = grep { $dom{$_} } keys %dom; + my @notpassed = grep { not $dom{$_} } keys %dom; + + say ' + + '; + say "

Domaines accessibles en IPv6 (♥) :

"; + say "

", join(', ', @passed), "

"; + + say "

Mauvais élèves, non accessibles en IPv6 :

"; + say "

", join(', ', @notpassed), "

"; + say ""; +} + +get_urls; +check_reachability; +do_html;