【发布时间】:2021-09-25 22:12:48
【问题描述】:
我是 Django 的新手,我从专家那里得到了这段代码,但我不知道它是如何工作的,也不知道有谁能解释它是如何工作的?
def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip
【问题讨论】:
-
你必须学习
HTTP(超文本传输协议)才能理解它。 -
当客户端(即 Web 浏览器)向服务器上的某个页面发送请求时,它会添加额外的信息(HTTP 标头),其中之一可以是
REMOTE_ADDR和IP。如果请求通过proxy server,那么proxy serve可以将其IP放入REMOTE_ADDR并将原始IP保留在HTTP_X_FORWARDED_FOR中