我正在使用HTML::Mason
来投放包含表单的网页。填写并提交表单后,我想知道远程客户端的IP地址。
我尝试打印$r->headers_in
,但我得到了
Apache2::Request=SCALAR(0x1961ba0)->headers_in
我使用了错误的论点吗?
答案 0 :(得分: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;
});