http://www.perlmonks.org?node_id=984917


in reply to Re: ipv6 support on windows
in thread ipv6 support on windows

I forgot the dependencies on Windows. Despite what you read, the Socket module does not support IPv6 on Windows in Perl 5.14 (at least in the Strawberry distribution). You still need Socket6 or Socket::GetAddrInfo.

As you'll see in the modified code below, IO::Socket::IP is using Socket::GetAddrInfo in my case since I have it installed - do you?

use IO::Socket::IP -register; for my $m (sort(keys(%INC))) { print "$m\n" } my $sock = IO::Socket->new( Domain => PF_INET6, LocalHost => "::1", Listen => 1, ) or die "Cannot create socket - $@\n"; print "Created a socket of type " . ref($sock) . "\n";

And the output:

VinsWorldcom@C:\Users\VinsWorldcom\tmp> test.pl AutoLoader.pm C:/strawberry/perl/lib/auto/POSIX/autosplit.ix C:/strawberry/perl/lib/auto/POSIX/load_imports.al Carp.pm Config.pm Config_git.pl Config_heavy.pl DynaLoader.pm Errno.pm Exporter.pm Exporter/Heavy.pm Fcntl.pm IO.pm IO/Handle.pm IO/Socket.pm IO/Socket/INET.pm IO/Socket/IP.pm IO/Socket/UNIX.pm POSIX.pm SelectSaver.pm Socket.pm Socket/GetAddrInfo.pm Socket/GetAddrInfo/Core.pm Socket/GetAddrInfo/XS.pm Symbol.pm Tie/Hash.pm XSLoader.pm base.pm strict.pm vars.pm warnings.pm warnings/register.pm Created a socket of type IO::Socket::IP
UPDATE: Not quite right - the Socket module does support IPv6, the gcc compiler shipped with Strawberry 5.14 and recently verified 5.16 does not have the headers or the libraries to support compiling some of the IPv6 options - specifically inet_ntop() was failing for me. I recently corresponded with Paul Evans (https://rt.cpan.org/Ticket/Display.html?id=78890) - maintainer of Socket - and he clarified this for me. I have a workaround for compiling IPv6 support in Socket for Strawberry Perl on Windows that works for both 5.14 and 5.16 documented http://vinsworldcom.blogspot.com/2012/08/ipv6-in-perl-on-windows_20.html.