【问题标题】:IP address of form submitter (remote IP address) using Perl and HTML::Mason使用 Perl 和 HTML::Mason 的表单提交者的 IP 地址(远程 IP 地址)
【发布时间】:2013-01-10 19:11:43
【问题描述】:

我正在使用HTML::Mason 提供包含表单的网页。表单填写提交后,我想知道远程客户端的IP地址。

我尝试打印 $r->headers_in 但我得到了

Apache2::Request=SCALAR(0x1961ba0)->headers_in

我是否使用了错误的参数?

【问题讨论】:

    标签: html perl mason


    【解决方案1】:

    对于 CGI 应用程序,远程 IP 地址在 $ENV{REMOTE_ADDR}

    如果您使用的是 mod_perl,则等效值为 $r->connection->remote_ip,其中 $r 是您的 Apache2::Request 对象。

    如果您在双引号中调用方法,则会产生您显示的输出,例如

    print "$r->headers_in\n"
    

    如果你去掉引号,它会正常工作

    print $r->headers_in, "\n"
    

    $r->headers_in 方法返回一个APR::Table 对象。您可以使用do 方法和合适的子例程(必须返回1 以继续通过表进行迭代)转储此内容,如下所示:

    my $table = $r->headers_in;
    $table->do(sub {
      printf "%s: %s\n", @_;
      1;
    });
    

    【讨论】:

    • 谢谢,这是一个基本问题。我将如何打印 APR::Table=HASH(0x59d0b30) 的内容,这是 print $r->headers_in 给我的。我想看看 $r->headers_in 的不同部分?新手
    • @mamesaye:我已经添加到我的答案中来描述如何打印headers_in 的返回值。
    • thkx,为我节省了几个小时,你知道你的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    相关资源
    最近更新 更多