【发布时间】:2013-01-10 19:11:43
【问题描述】:
我正在使用HTML::Mason 提供包含表单的网页。表单填写提交后,我想知道远程客户端的IP地址。
我尝试打印 $r->headers_in 但我得到了
Apache2::Request=SCALAR(0x1961ba0)->headers_in
我是否使用了错误的参数?
【问题讨论】:
我正在使用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_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;
});
【讨论】:
headers_in 的返回值。