代码之家  ›  专栏  ›  技术社区  ›  user4035

HTTP::请求使用IPv6接口

  •  0
  • user4035  · 技术社区  · 10 年前

    我有一台支持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);
    }
    

    信息。php文件:

    <?php
    print $_SERVER['REMOTE_ADDR'];
    

    lwt 别名写入/etc/hosts文件,如下所示:

    127.0.0.1       lwt
    

    当前输出为:“127.0.0.1”。因此,请求通过IPv4发送。

    是否可以告诉Perl改用IPv6接口?

    1 回复  |  直到 10 年前
        1
  •  1
  •   brian d foy    10 年前

    为了建立IPv6连接,LWP必须找到IPv6 住址 您的主机名。由于您通过/etc/hosts提供的地址127.0.0.1是IPv4地址,因此不会发生这种情况。您需要一个hosts条目,如 ::1 lwt 以便主机名解析为IPv6环回地址。