Как я включаю поддержку IPv6 в LWP?

Следующий код...

my $user_agent = LWP::UserAgent->new;
my $request = HTTP::Request->new(GET => $url);
my $response = $user_agent->request($request);
if ($response->is_success) {
    print "OK\n";
} else {
    die($response->status_line);
}

.. перестанет работать с..

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

.. если именем хоста в $url является IPv6, только обращаются (который является: присутствие AAAA запись, но нет A запись).

Мои вопросы:

  • Как я включаю поддержку IPv6 в LWP?
  • Как я настраиваю настройки LWP для "prefer-IPv4-over-IPv6" (A по сравнению с. AAAA) / "prefer-IPv6-over-IPv4" (AAAA по сравнению с. A)?
10
задан xenoterracide 19 August 2010 в 06:34
поделиться

2 ответа

Похоже, вам просто нужно использовать Net :: INET6Glue :: INET_is_INET6 . Процитируем его пример:

 use Net::INET6Glue::INET_is_INET6;
 use LWP::Simple;
 print get( 'http://[::1]:80' );
 print get( 'http://ipv6.google.com' );
12
ответ дан 3 December 2019 в 22:37
поделиться

Я считаю, что вам придется изменить модуль, чтобы использовать сетевой модуль IPV6. По умолчанию это не включено: http://eintr.blogspot.com/2009/03/bad-state-of-ipv6-in-perl.html . Я не верю, что есть что-то более простое, как "предпочитают-ipv6"

2
ответ дан 3 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: