-1

HTML::Masonフォームを含む Web ページを提供するために使用しています。フォームに入力して送信するときに、リモート クライアントの IP アドレスを知りたいです。

印刷してみまし$r->headers_inたが、

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

間違った引数を使用していますか?

4

1 に答える 1

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::Tabledo次のように、メソッドと適切なサブルーチン (1続行するにはテーブルを介して反復するために戻る必要があります)を使用して、この内容をダンプできます。

my $table = $r->headers_in;
$table->do(sub {
  printf "%s: %s\n", @_;
  1;
});
于 2013-01-10T19:22:47.190 に答える