1

私のアプリケーションは、Python とボトルフレームワークで開発されています。次のコード スニペットを使用して、ページへの訪問者の IP アドレスを取得しています。

user_ip = bottle.request.environ['REMOTE_ADDR']

ローカル マシンでは正常に動作しますが、AWS Beanstalk インスタンスにデプロイした後、user_ip が 10.48.95.234 のように読み取られるため、ロード バランサーの IP を取得していると思います。

私の考えは正しいですか?もしそうなら、実際の訪問者の IP アドレスを取得する方法はありますか?

4

3 に答える 3

6

REMOTE_ADDRあなたが得ている値はELBのものであるというのは正しいです。

X-Forwarded-For通常、リクエストでヘッダーを探す必要があります。ELBはこのヘッダーを挿入して、エンドクライアントのIPアドレスを通知します。

于 2013-01-09T16:54:08.930 に答える
3

この場合に役立つボトル固有のバージョンもあります。

user_ip = bottle.request.remote_addr

これにより、自動的に処理が行われ、ユーザーのアドレスが取得されます。詳細については、ドキュメントまたはソース コードを参照してください。

于 2013-01-09T17:17:11.940 に答える