使用Perl和HTML的表单提交者的IP地址(远程IP地址)::Mason



我使用HTML::Mason为包含表单的网页提供服务。当填写并提交表单时,我想知道远程客户端的IP地址。

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

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

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

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

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

如果将方法调用放在双引号中,如

,则会产生您所显示的输出。
print "$r->headers_inn"

如果你去掉引号

它会正常工作
print $r->headers_in, "n"

$r->headers_in方法返回APR::Table对象。您可以使用do方法和合适的子例程(必须返回1才能继续遍历表)转储其中的内容,如下所示:

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

相关内容

  • 没有找到相关文章

最新更新