Python 是否可以从HTTP请求头获取客户端的IP地址?

Python 是否可以从HTTP请求头获取客户端的IP地址?,python,http,python-requests,request-headers,python-requests-html,Python,Http,Python Requests,Request Headers,Python Requests Html,我想知道是否可以使用Python从http请求头获取客户端的IP地址?我在做一个天气项目,如果我能显示他自己所在位置的天气信息,那就太好了。如果请求碰巧包含X-Forwarded-For,X-Real-IP,那么你可能会得到客户的实际IP地址。然而,大多数情况下,如果用户不想让您通过使用代理来了解他们的实际IP,那么服务器无法告诉您。正如其他评论所指出的,如果您只在HTTP层上工作,就不可能获得IP地址。我提到的两个头通常仅在使用反向代理/负载平衡器时添加到请求中。如果请求碰巧包含X-Forwa

我想知道是否可以使用Python从http请求头获取客户端的IP地址?我在做一个天气项目,如果我能显示他自己所在位置的天气信息,那就太好了。

如果请求碰巧包含X-Forwarded-For,X-Real-IP,那么你可能会得到客户的实际IP地址。然而,大多数情况下,如果用户不想让您通过使用代理来了解他们的实际IP,那么服务器无法告诉您。正如其他评论所指出的,如果您只在HTTP层上工作,就不可能获得IP地址。我提到的两个头通常仅在使用反向代理/负载平衡器时添加到请求中。

如果请求碰巧包含X-Forwarded-For、X-Real-IP,则您可能会获得客户端的实际IP地址。然而,大多数情况下,如果用户不想让您通过使用代理来了解他们的实际IP,那么服务器无法告诉您。正如其他评论所指出的,如果您只在HTTP层上工作,就不可能获得IP地址。我提到的两个头通常仅在您使用反向代理/负载平衡器时添加到请求中。

如果您托管服务器,并且可以访问HTTP头,则可以通过以下方式获取客户端IP

摘自我在服务器应用程序中使用的:

用户ip由以下顺序确定:

X-Client-IP

X-Forwarded-For标头可能返回多个IP地址,格式为:客户端IP、代理1 IP、代理2 IP,因此我们使用第一个

CF连接IP Cloudflare

Fastly客户端Ip Fastly CDN和Firebase主机头,用于云功能

真正的客户端Ip Akamai和Cloudflare

X-Real-IP Nginx代理/FastCGI

X-Cluster-Client-IP机架空间LB,河床黄貂鱼

X-Forwarded、Forwarded For和Forwarded变体2


如果您正在托管服务器,并且可以访问HTTP头,那么可以通过以下方式获取客户端IP

摘自我在服务器应用程序中使用的:

用户ip由以下顺序确定:

X-Client-IP

X-Forwarded-For标头可能返回多个IP地址,格式为:客户端IP、代理1 IP、代理2 IP,因此我们使用第一个

CF连接IP Cloudflare

Fastly客户端Ip Fastly CDN和Firebase主机头,用于云功能

真正的客户端Ip Akamai和Cloudflare

X-Real-IP Nginx代理/FastCGI

X-Cluster-Client-IP机架空间LB,河床黄貂鱼

X-Forwarded、Forwarded For和Forwarded变体2


您是否使用任何服务器框架?简短回答:没有,但端点将从用于发出请求的数据包中检索您的IP地址。将帮助您可视化不同的层和TCP/IP协议您是否使用任何服务器框架?简短回答:否,但端点将从用于发出请求的数据包中检索您的IP地址。将帮助您可视化不同的层和TCP/IP协议她用请求模块标记了这篇文章,这让我觉得他不是从服务器的角度说话的?在这种情况下,当你实际上是一名客户时,无法获得客户的IP。@CillianCollins这个问题的措辞和标记方式让我认为OP只是意味着他们试图使用Python从HTTP请求获取数据,而不是请求包。他用请求模块标记了这篇文章,这让我觉得他不是从服务器的角度说话的?在这种情况下,当您实际上是客户时,无法获取客户的IP。@CillianCollins这个问题的措辞和标记方式使我认为OP只意味着他们试图使用Python从HTTP请求而不是请求包获取数据