NAME

EPFL::Net::ipv6Test - Website IPv6 accessibility validator API

VERSION

Version 1.01

SYNOPSIS

Check IPv6 connectivity from a Website with ipv6-test.com

use EPFL::Net::ipv6Test qw/getWebAAAA getWebServer getWebDns/;

my $aaaa = getWebAAAA('google.com');
print $aaaa->{dns_aaaa}; # => '2400:cb00:2048:1::6814:e52a'

my $aaaa = getWebServer('google.com');
print $aaaa->{dns_aaaa}; # => '2400:cb00:2048:1::6814:e52a'
print $aaaa->{server}; # => 'gws'

my $dns = getWebDns('google.com');
print $dns->{dns_ok}; # => 1
print @{$dns->{dns_servers}};
# => 'ns3.google.comns2.google.comns1.google.comns4.google.com'

Via the command line epfl-net-ipv6-test

DESCRIPTION

A simple module to validate IPv6 accessibility of a Website

SUBROUTINES/METHODS

getWebAAAA( $domain )

Return the AAAA DNS record.

Example:

{'dns_aaaa' => '2400:cb00:2048:1::6814:e52a'}

or

{'dns_aaaa' => 'null', 'error' => 'no AAAA record'}

getWebServer( $domain )

Return the AAAA DNS record, the server and the title.

Example:

{
  'dns_aaaa' => '2400:cb00:2048:1::6814:e42a',
  'server' => 'cloudflare',
  'title' => 'EPFL news'
}

or

{'dns_aaaa' => 'null', 'error' => 'no AAAA record'}

getWebDns( $domain )

Return DNS servers.

Example:

{'dns_ok' => 1, 'dns_servers' => ['stisun1.epfl.ch', 'stisun2.epfl.ch']}

or

{'dns_ok' => 0, 'dns_servers' => []}

PRIVATE SUBROUTINES/METHODS

p_getWebAPI

Return the response from the API.

p_createUserAgent

Return a LWP::UserAgent. LWP::UserAgent objects can be used to dispatch web requests.

p_getUrl

Dispatch a GET request on the given $url The return value is a response object. See HTTP::Response for a description of the interface it provides.

p_buildUrl

Return the correct url to call for the API.

AUTHOR

William Belle, <william.belle at gmail.com>

BUGS AND LIMITATIONS

Please report any bugs or feature requests here https://github.com/epfl-idevelop/epfl-net-ipv6Test/issues. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc EPFL::Net::ipv6Test

You can also look for information at:

LICENSE AND COPYRIGHT

Copyright ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE, Switzerland, VPSI, 2018.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

L<http://www.apache.org/licenses/LICENSE-2.0>

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.