python flask source - 訪問者のIPアドレスを取得する





4 Answers

実際には、次の情報を取得するだけでサーバーのアドレスを取得することができます。

request.remote_addr

クライアントのIPアドレスが必要な場合は、次のようにします。

request.environ['REMOTE_ADDR']
get client remote

私は、ユーザがPythonを使用するFlaskマイクロフレームワークWerkzeug基づいて)(私の場合は2.6)を使用して、ユーザがログオンしてファイルをダウンロードできるウェブサイトを作っています。

ユーザーのIPアドレスを取得する必要があります(ログを記録するために)。 誰もこれを行う方法を知っていますか? 確かにPythonでそれを行う方法がありますか?




ユーザーのIPアドレスは、次のスニペットを使用して取得できます。

from flask import request
print(request.remote_addr)



以下のコードは、常にクライアントのパブリックIPを与えます(プロキシの背後にあるプライベートIPではありません)。

from flask import request

if request.environ.get('HTTP_X_FORWARDED_FOR') is None:
    print(request.environ['REMOTE_ADDR'])
else:
    print(request.environ['HTTP_X_FORWARDED_FOR']) # if behind a proxy



これは仕事をするはずです。 クライアントのIPアドレス(リモートホスト)を提供します。

このコードはサーバー側で実行されていることに注意してください。

from mod_python import apache

req.get_remote_host(apache.REMOTE_NOLOOKUP)



Related