Tornado获取客户端IP(补充)

今天发现犯了一个错误,前几天写过一篇“tornado获取客户端IP”,但今天查看数据库中数据时候发现所有的IP均是127.0.0.1(因数据库使用bigint存储,所以数据库中看到IP均是2130706433),在Group中搜索了一下发现Ben以前解释过这个问题BenDarnellTornadosupportsbothx-real-ipandx-forwarded-for,butyouhavetosetxheaders=TrueinyourHTTPServerconstructortohaveitlookateitherofthem.-Ben即tornado支持通过x-real-ip或x-forwarded-for来获取IP,但前提是需要在你的HTTPServer实例中增加xheaders=True参数,如:http_server=tornado.httpserver.HTTPServe...

精彩继续

tornado获取客户端IP

网上搜到的用tornado获取客户端IP都使用self.request.headers['X-Real-Ip'],但实际翻tornado源代码发现只需要获取self.request.remote_ip即可取到客户端IP见引用tornado源代码(对应文件为httpserver.py中HTTPRequest属性remote_ip)ifconnectionandconnection.xheaders:#SquidusesX-Forwarded-For,othersuseX-Real-Ipself.remote_ip=self.headers.get("X-Real-Ip",self.headers.get("X-Forwarded-For",remote_ip))#AWSusesX-Forwarded-Protoself.protocol=self.headers.get("X-Scheme"...

精彩继续