随处可见的Python在标头中设置自定义定义
HTTP_X_REAL_IP
这是pythonanywhere接收请求的IP地址,似乎最适合获取实际的客户端IP。
您还可以使用HTTP_X_FORWARDED_FOR,但从理论上讲,如果传入请求在到达pythonAnywhere之前经过某种代理,则它可能包含一组不同的IP地址。
为此,有两种选择。
首先,您可以将其添加到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,
}
或者,您可以修改django-debug-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)