我有一台支持IPv6的Linux机器,本地环回接口:::1
。
我创建了一个perl脚本,用于向本地虚拟主机发送HTTP请求:
#!/usr/bin/perl
use strict;
use warnings;
use Net::INET6Glue::INET_is_INET6;
use LWP;
my $user_agent = LWP::UserAgent->new;
my $url = 'http://lwt/docs/info.php';
my $request = HTTP::Request->new(GET => $url);
my $response = $user_agent->request($request);
if ($response->is_success) {
print $response->decoded_content;
}
else {
die($response->status_line);
}
info.php文件:
<?php
print $_SERVER['REMOTE_ADDR'];
lwt
别名写在/ etc / hosts文件中,如下所示:
127.0.0.1 lwt
目前输出为:&#34; 127.0.0.1&#34;。因此,请求通过IPv4发送。
是否可以告诉Perl使用IPv6接口?
答案 0 :(得分:1)
为了建立IPv6连接,LWP必须为您的主机名找到IPv6 地址。由于您通过/ etc / hosts(127.0.0.1)提供的地址是IPv4地址,因此不会发生这种情况。您需要一个类似::1 lwt
的主机条目,以便主机名解析为IPv6环回地址。