我使用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;
});