2012-01-25 7 views
14

私はPyramidフレームワークを使用しており、リクエストの発信元であるIPアドレスにアクセスしたいとします。私はそれがどこかの要求オブジェクト(すべてのビュー関数に渡される)にあると仮定しますが、どこにあるかを示すドキュメントを見つけることはできません。ピラミッドでリクエストIPアドレスを取得する

+0

webobで快適になることは価値があるかもしれません。 http://docs.webob.org/en/latest/index.html –

答えて

22

request.remote_addrです。

pyramid.requestのマニュアルに記載されています。

+0

ありがとうございます。私はドキュメントでそれを見ましたが、私は "remote_addr"が "IPアドレス"を意味していることを認識しませんでした。彼らは単にそれを "IPアドレス"と呼んでいませんか? –

+4

"IPアドレス"はあいまいであるため、サーバーのアドレス、クライアントのアドレスなどがあいまいですか? 「remote_addr」は、リモート側、すなわちクライアントのアドレスである。 –

4

それとも、あなたが使用することができますrequest.environ['REMOTE_ADDR']

7

使用することができますrequest.client_addrを。

+1

"ユーザーエージェントは、通常のHTTPヘッダーであるため、他の人のIPやHTTP_X_FORWARDED_FORの任意の文字列を置くことはできますが、フォワードプロキシも不正な値(プライベートIPアドレスなど)を与える可能性があります。このメソッドは、HTTP_X_FORWARDED_FORが正しい値を持っていることが確実でない限り、有効なデータを提供します.WSGIサーバーは信頼できるプロキシの背後にある必要があります。 これを正しく理解すれば、正しいHTTP_X_FORWARDED_FORを設定する信頼できるプロキシの背後にいる場合を除いて、 'remote_addr'を使うべきです。 –

+0

@ YannDinendal:はい、そうです。私はこの点を明確にしていない場合は申し訳ありません。 –

関連する問題