如何获取Heroku应用程序请求的IP地址?

ioekq8ef  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(130)

Heroku有一个路由系统将请求转发到dynos。我的应用程序需要知道请求来自哪里,但它总是在网络中获得随机地址,可能是Heroku的内部地址。
我看到在日志中,它(Heroku的路由器)得到了我的IP地址并转发了请求。有没有办法得到请求的实际IP地址?
我的应用程序是用Python编写的,使用的是Flask

oxcyiej7

oxcyiej71#

检查Flask关于过滤头文件等的文档时,我发现:

request.headers['X-Forwarded-For']

是获取客户端真实的IP地址的地方。
从OP删除的评论中,这篇文章提供了一个safer solution

2q5ifsrm

2q5ifsrm2#

当在本地或在其他地方托管站点时,您希望保留来自request.remote_addr的IP:

def getIP():
    if 'X-Forwarded-For' in request.headers:
        return request.headers['X-Forwarded-For']
    return request.remote_addr

相关问题