在Python中检索浏览器头

2024-05-23 14:17:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在画一个空白,作为如何获得当前的浏览器头信息的用户在Python龙卷风?例如,在PHP中,您可以简单地查看$u服务器数据。龙卷风的替代品是什么?

注意:How do I get the client IP of a Tornado request?和“请求”对我不起作用。


Tags: ofthe数据用户ip服务器client信息
2条回答

下面是一个基于服务器的片段,我在其中从请求中检索了一些头数据:

class api(tornado.web.RequestHandler):
    def initialize(self, *args, **kwargs):
        self.remote_ip = self.request.headers.get('X-Forwarded-For', self.request.headers.get('X-Real-Ip', self.request.remote_ip))
        self.using_ssl = (self.request.headers.get('X-Scheme', 'http') == 'https')
    def get(self):
        self.write("Hello " + ("s" if self.using_ssl else "") + " " + self.remote_ip)

您可以使用类似于tornado/httpserver.py的逻辑,或者只使用xheaders=True创建tornado.httpserver.HTTPServer()

# Squid uses X-Forwarded-For, others use X-Real-Ip
ip = self.headers.get("X-Forwarded-For", self.remote_ip)
ip = ip.split(',')[-1].strip()
ip = self.headers.get(
    "X-Real-Ip", ip)
if netutil.is_valid_ip(ip):
    self.remote_ip = ip
# AWS uses X-Forwarded-Proto
proto = self.headers.get(
    "X-Scheme", self.headers.get("X-Forwarded-Proto", self.protocol))
if proto in ("http", "https"):
    self.protocol = proto

相关问题 更多 >