Perl – Scoprire se il sistema supporta ipv6

Scoprire se il sistema supporta ipv6 non è immediato, infatti per farlo bisogna provare ad aprire un socket ipv6, ma se il sistema non dovesse supportare ipv6 quest’operazione farebbe morire il programma. Potete allora appoggiarvi al modulo IO::Socket::IP ed utilizzare la seguente funzione:

use IO::Socket::IP sub supports_ipv6 {
    my $has_ipv6;
   
    eval {
        $has_ipv6 = IO::Socket::IP->new (
            Domain => PF_INET6,
            LocalHost => '::1',
            Listen => 1 ) or die;
    };
   
    if ($@) {
        return 0;
    }
    else {
        return 1;
    }
}