我有一个使用 TCP/IP 套接字的 Perl/Windows 应用程序,我需要添加 IPv6 支持。
我有一台 Windows 7 64 位机器,它运行带有 Hurricane Electric 隧道的 IPv6,它在http://test-ipv6.com/上的得分为 10 分(满分 10 分),并且将访问仅限 IPv6 的站点,例如http://loopsofzen。 co.uk/ .
它有 ActivePerl 5.14.2(我也试过草莓 Perl 5.16.0.1)。
这是一个简单的测试脚本:
use Socket qw( getaddrinfo );
$host = 'loopsofzen.co.uk';
$port = 80;
$hints = (socktype => SOCK_STREAM, family -> Socket::AF_INET6);
($err, @addrs) = getaddrinfo($host, 0);
die $err if $err;
这会产生错误:
no address associated with nodename at ip.pl line 6.
(新)getaddrinfo()
功能似乎可用,如果我设置$host
为使用 IPv4 主机名,它确实有效。但是 IPv6 似乎根本不起作用。
我错过了什么?还是 Perl/Windows/IPv6 暂时还是一个失败的原因?