您好,在Flask中获取访客的真实IP地址可以使用request.remote_addr,但是在有些情况下可能会出现获取到的IP地址不是真实的情况,因为有些代理服务器或者CDN会修改HTTP头部信息,从而导致获取到的是代理服务器或CDN的IP地址而不是访客的真实IP地址。
为了解决这个问题,可以通过获取HTTP头部中的X-Forwarded-For字段来获取访客的真实IP地址,X-Forwarded-For字段通常是由代理服务器或CDN添加的,它包含了访客的真实IP地址和之前的代理服务器或CDN的IP地址。以下是一个获取访客真实IP地址的示例代码:
- from flask import Flask, request
- app = Flask(__name__)
- @app.route('/')
- def index():
- ip = request.headers.get('X-Forwarded-For', request.remote_addr)
- return f'Your IP address is {ip}'
- if __name__ == '__main__':
- app.run()
复制代码 |