是否可以从HTTP请求标头中获得客户端的IP地址?

问题描述 投票:1回答:2

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

python http python-requests request-headers python-requests-html
2个回答
0
投票

如果请求恰好包含X-Forwarded-ForX-Real-IP,则您可能获取客户端的实际IP地址。但是,在大多数情况下,如果用户不希望您通过使用代理来了解其实际IP,则服务器无法告知。正如其他评论所指出的那样,如果您仅在HTTP层上工作,则不可能获得IP地址。我提到的两个标头通常仅在使用反向代理/负载平衡器时才添加到请求中。


0
投票

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

取自我在服务器应用程序中使用的a node.js package

用户IP由以下顺序确定:

  1. X-Client-IP

  2. X-Forwarded-For(标头可能以以下格式返回多个IP地址:“客户端IP,代理1 IP,代理2 IP”,因此我们采用第一个。)]]

  3. CF-Connecting-IP(Cloudflare)

  4. Fastly-Client-Ip(当转发到云功能时,是快速CDN和Firebase托管标头)

  5. True-Client-Ip(Akamai和Cloudflare)

  6. X-Real-IP(Nginx代理/ FastCGI)

  7. X-Cluster-Client-IP(Rackspace LB,Riverbed Stingray)

  8. X转发,转发并转发(#2的变化)

© www.soinside.com 2019 - 2024. All rights reserved.