宝塔618特惠活动,企业版999元/年,宝塔SSL证书买1送1!限时抢购!查看活动
当前位置:论坛首页 > Linux面板 > 讨论

【已完成】通过代理访问bt后台,如何获取真实ip。

发表在 Linux面板2024-5-9 20:56  关闭 [复制链接] 1 2345

通过代理访问bt后台,如何获取真实ip。
这样才有安全感啊。
可以针对代理的真实ip,限制访问。

使用道具 举报 只看该作者 回复
发表于 2024-5-9 22:33:19 | 显示全部楼层
搞定了,在panel/class/public.py里面修改下函数
  1. def GetClientIp():
  2.     from flask import request
  3.    
  4.     # 尝试获取X-Forwarded-For头部中的IP地址
  5.     ipaddr = request.headers.get('X-Forwarded-For')
  6.    
  7.     if ipaddr:
  8.         # 如果有多个IP地址,取第一个(最可能是客户端的IP)
  9.         ipaddr = ipaddr.split(',')[0].strip()
  10.     else:
  11.         # 如果X-Forwarded-For头部不存在,使用request.remote_addr
  12.         ipaddr = request.remote_addr
  13.    
  14.     # 移除可能的IPv6前缀
  15.     ipaddr = ipaddr.replace('::ffff:', '')
  16.    
  17.     # 这里可以添加对IP地址的验证逻辑
  18.     if not check_ip(ipaddr): return '未知IP地址'
  19.    
  20.     return ipaddr
复制代码




使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表