使用Perl和HTML::Mason的表单提交者的IP地址(远程IP地址)
我正在使用提供包含表单的网页。填写并提交表单时,我想知道远程客户端的IP地址 我试着在中打印使用Perl和HTML::Mason的表单提交者的IP地址(远程IP地址),html,perl,mason,Html,Perl,Mason,我正在使用提供包含表单的网页。填写并提交表单时,我想知道远程客户端的IP地址 我试着在中打印$r->headers\u,但我发现 Apache2::Request=SCALAR(0x1961ba0)->headers_in 我是否使用了错误的参数?对于CGI应用程序,远程IP地址位于$ENV{remote\u ADDR}中 如果您使用的是mod_perl,则等效值位于$r->connection->remote_ip,其中$r是您的Apache2::Request对象 如果方法调用用双引
$r->headers\u,但我发现
Apache2::Request=SCALAR(0x1961ba0)->headers_in
我是否使用了错误的参数?对于CGI应用程序,远程IP地址位于$ENV{remote\u ADDR}
中
如果您使用的是mod_perl,则等效值位于$r->connection->remote_ip
,其中$r
是您的Apache2::Request
对象
如果方法调用用双引号括起来,则将生成显示的输出,如
print "$r->headers_in\n"
如果删除引号,它将正常工作
print $r->headers_in, "\n"
方法中的$r->headers\u返回一个对象。您可以使用do
方法和合适的子例程(必须返回1
才能通过表继续迭代)转储此文件的内容,如下所示:
my $table = $r->headers_in;
$table->do(sub {
printf "%s: %s\n", @_;
1;
});
谢谢,这是一个基本问题。如何打印APR::Table=HASH(0x59d0b30)的内容,这是print$r->headers\u in给我的。我想看看$r->headers\u的不同部分在哪里?A.newbie@mamesaye:我在回答中添加了描述如何在
中打印标题的返回值的内容。thkx,节省了我几个小时,你知道你的东西