目前宝塔获取IP的函数为GetClientIp,使用的request.remote_addr,如果进行了反向代理,不能获取到真实的IP。建议进行改造
以下为示例代码
def GetClientIp():
from flask import request
x_forwarded_for = request.headers.getlist('X-Forwarded-For')
if x_forwarded_for:
ipaddr = x_forwarded_for[0]
else:
ipaddr = request.remote_addr.replace('::ffff:','')
if not check_ip(ipaddr): return '未知IP地址'
return ipaddr
|
|