Pythonはどこかのヘッダーのカスタム定義が
HTTP_X_REAL_IPと呼ばれるセットこれはpythonanywhereが要求を受信するから、IPアドレスであり、それは、実際のクライアントIPを取得するために最善を動作するようです。
HTTP_X_FORWARDED_FORを使用することもできますが、理論的には、着信要求が何らかの種類のプロキシを経由してpythonAnywhereに到達すると、一連の異なるIPアドレスを含む可能性があります。
これには2つのオプションがあります。
まず、あなたのsettings.py
def custom_show_toolbar(request.META.get('HTTP_X_REAL_IP', None) in INTERNAL_IPS):
return True
# Show toolbar, if the IP returned from HTTP_X_REAL_IP IS listed as INTERNAL_IPS in settings
if request.is_ajax():
return False
# Show toolbar, if the request is not ajax
return bool(settings.DEBUG)
# show toolbar if debug is true
DEBUG_TOOLBAR_CONFIG = {
'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,
}
にこれを追加することもできますし、ジャンゴ・デバッグ・ツールバーのフォルダ内のファイルmiddleware.pyを変更し、次のコードを変更することができます
を
def show_toolbar(request):
"""
Default function to determine whether to show the toolbar on a given page.
"""
if request.META.get('REMOTE_ADDR', None) not in settings.INTERNAL_IPS:
return False
if request.is_ajax():
return False
return bool(settings.DEBUG)
へ:
def show_toolbar(request):
"""
Default function to determine whether to show the toolbar on a given page.
"""
if request.META.get('HTTP_X_REAL_IP', None) not in settings.INTERNAL_IPS:
return False
if request.is_ajax():
return False
return bool(settings.DEBUG)
HTTP_X_REAL_IPは私が必要なものだったありがとう!これはすべてのサーバーに設定されているのですか? – Jackobson
PythonAnywhere devここには、ロードバランサの背後にあるサーバが使用すべきヘッダの公式な標準はありませんが、X-Real-IPが最も一般的です。 –