Heroku有一个路由系统将请求转发到dynos。我的应用程序需要知道请求来自哪里,但它总是在网络中获得随机地址,可能是Heroku的内部地址。我看到在日志中,它(Heroku的路由器)得到了我的IP地址并转发了请求。有没有办法得到请求的实际IP地址?我的应用程序是用Python编写的,使用的是Flask
oxcyiej71#
检查Flask关于过滤头文件等的文档时,我发现:
request.headers['X-Forwarded-For']
是获取客户端真实的IP地址的地方。从OP删除的评论中,这篇文章提供了一个safer solution。
2q5ifsrm2#
当在本地或在其他地方托管站点时,您希望保留来自request.remote_addr的IP:
request.remote_addr
def getIP(): if 'X-Forwarded-For' in request.headers: return request.headers['X-Forwarded-For'] return request.remote_addr
2条答案
按热度按时间oxcyiej71#
检查Flask关于过滤头文件等的文档时,我发现:
是获取客户端真实的IP地址的地方。
从OP删除的评论中,这篇文章提供了一个safer solution。
2q5ifsrm2#
当在本地或在其他地方托管站点时,您希望保留来自
request.remote_addr
的IP: