我有一个具有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/host文件中写入的,如下所示:
127.0.0.1 lwt目前的输出是:"127.0.0.1“。因此,请求是通过IPv4发送的。
是否可以告诉Perl改用IPv6接口?
发布于 2016-06-16 02:57:08
为了建立一个IPv6连接,LWP必须为您的主机名找到一个IPv6地址。由于您通过/etc/host提供的地址( 127.0.0.1 )是一个IPv4地址,所以不会发生这种情况。您需要像::1 lwt这样的主机条目,以便主机名解析为IPv6环回地址。
https://stackoverflow.com/questions/37843921
复制相似问题