This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 837 - Support for IPv6
Summary: Support for IPv6
Status: NEW
Alias: None
Product: Validator
Classification: Unclassified
Component: check (show other bugs)
Version: 0.6.7
Hardware: Other All
: P3 enhancement
Target Milestone: ---
Assignee: Terje Bless
QA Contact: qa-dev tracking
URL: http://[2001:618:1:8000::5]/test/
: 3322 (view as bug list)
Depends on:
Reported: 2004-08-09 04:05 UTC by Troels Arvin
Modified: 2015-03-12 22:33 UTC (History)
6 users (show)

See Also:

Modified W3C::Validator::UserAgent (1.47 KB, text/plain)
2008-03-21 02:50 UTC, Andre-John Mas

Description Troels Arvin 2004-08-09 04:05:02 UTC doesn't support checking of pages in IPv6 hosts.
Comment 1 Olivier Thereaux 2007-02-22 04:36:17 UTC
*** Bug 3322 has been marked as a duplicate of this bug. ***
Comment 2 Olivier Thereaux 2007-02-22 04:39:24 UTC
The validator depends on libwww-perl (a.k.a LWP) for the HTTP layer, and is unlikely to support IPV6 until lwp does. 
Comment 4 Andre-John Mas 2008-03-19 22:14:24 UTC
Is libwww-perl even active any more. The last mailing list entry I see, in the archive, is 2001 and there was a ticket opened with regards to IPv6 in 2006, with no activity.
Comment 5 Andre-John Mas 2008-03-21 01:34:00 UTC
I have made some changes to the libwww library and have made them available here:

I am going to see whether I can eventually get something more official done.

It should also be noted that in doing this support for filtering out http://[::1] should be added to the validator.
Comment 6 Andre-John Mas 2008-03-21 02:50:29 UTC
Created attachment 538 [details]
Modified W3C::Validator::UserAgent

This is a modified version of W3C::Validator::UserAgent to filter out [::1] addresses. I have explicitly tested for [::1] since I couldn't work out how to gethostbyname() and Net::IP to play nicely with IPv6. Additionally it would appear the $uri->host() operation is returning a bracketed IPv6 address when it should not be.
Comment 7 Andre-John Mas 2008-03-21 02:59:32 UTC
Changes in W3C::Validator::UserAgent seem to have issues. Ignore for now.
Comment 8 Martin List-Petersen 2009-01-07 20:43:06 UTC
the URL mentioned doesn't seem to be accessible, but or could be used for a test.

Is there any progress on this ? 
Comment 9 Jérôme Poulin 2011-08-08 19:51:21 UTC
This bug has been open for so many years and still no progress. Adding me to CC anyway.
Comment 10 Witold Baryluk 2011-12-16 17:22:57 UTC
Please. This doesn't even work if I use URL without literal IPv6 address, but DNS name which have only CNAME/AAAA records. Validator says:

500 Can't connect to (Bad hostname '')

Also is not yet accessible over IPv6.

It looks that development (officially) moved to

A bug report is opened here

Also same bug is reported in Debian repository

For example it looks that connection functionality was moved to libnet-http-perl module.

if someone with knowledge of validator code would step up, it should be less than hour of work to switch to new code, and test it.
Comment 11 Ville Skyttä 2011-12-17 09:11:53 UTC
(In reply to comment #10)
> It looks that development (officially) moved to

Actually it's

> if someone with knowledge of validator code would step up, it should be less
> than hour of work to switch to new code, and test it.

There's no need for any knowledge of the validator code yet.  When libwww-perl gains IPv6 support, then it's time to look into if something needs to be done on the validator side.
Comment 12 Mikael Nordfeldth 2015-03-12 22:33:11 UTC
The following URL explains how to add IPv6 support to LWP:

The "best answer", by user cjm, was:

   It looks like you just need to use Net::INET6Glue::INET_is_INET6. To quote its example:
    use Net::INET6Glue::INET_is_INET6;
    use LWP::Simple;
    print get( 'http://[::1]:80' );
    print get( '' );

Another answer, by Ondrej Prochazka, mentions that it might not work with "$ua = new LWP::UserAgent();", then running ->request on an object created from "HTTP::Request". I.e. this doesn't work:

   use Net::INET6Glue::INET_is_INET6;
   use LWP::Simple;
   $ua = new LWP::UserAgent();
   my $req = new HTTP::Request("GET", "http://[::1]/");
   my $res = $ua->request($req);

Do these hints help in any way to adapt the validator script to support IPv6 web sources?