gpt4 book ai didi

windows - Perl Windows IPv6

转载 作者:可可西里 更新时间:2023-11-01 09:38:32 25 4
gpt4 key购买 nike

我有一个使用 TCP/IP 套接字的 Perl/Windows 应用程序,我需要添加 IPv6 支持。

我有一台运行 IPv6 的 Windows 7 64 位机器,带有 Hurricane Electric 隧道,它在 http://test-ipv6.com/ 上获得 10 分(满分 10 分)并将访问仅支持 IPv6 的站点,例如 http://loopsofzen.co.uk/ .

它有 ActivePerl 5.14.2(我也试过 Strawberry 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 暂时仍是失败的原因?

最佳答案

OSX 上的以下“对我有用”,可以成功ping -6 loopsofzen.co.uk

$ perl -lE'use Socket qw( getaddrinfo );
($err, @addrs) = getaddrinfo(q{loopsofzen.co.uk}, 0);
die $err if $err; print map { "@{[ %$_ ]}" } @addrs;'
protocol 17 canonname addr ?? socktype 2 family 30protocol 6 canonname addr ?? socktype 1 family 30

我认为您的问题不是 Perl 位,因为相同的代码对我有效。

关于windows - Perl Windows IPv6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11348206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com