From 630848f62e0be125a4cf7f8f9f684c6dc6e011e1 Mon Sep 17 00:00:00 2001 From: helloplhm-qwq Date: Sun, 17 Dec 2023 14:12:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AD=98=E5=9C=A8nginx=E5=8F=8D?= =?UTF-8?q?=E4=BB=A3=E6=97=B6=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index 6a6a492..dde82ad 100644 --- a/main.py +++ b/main.py @@ -37,9 +37,11 @@ async def handle_before_request(app, handler): async def handle_request(request): # nginx proxy header if (request.headers.get("X-Real-IP")): - request.remote = request.headers.get("X-Real-IP") + request.remote_addr = request.headers.get("X-Real-IP") + else: + request.remote_addr = request.remote # check ip - if (config.check_ip_banned(request.remote)): + if (config.check_ip_banned(request.remote_addr)): return handleResult({"code": 1, "msg": "您的IP已被封禁", "data": None}, 403) # check global rate limit if ( @@ -49,23 +51,23 @@ async def handle_before_request(app, handler): ): return handleResult({"code": 5, "msg": "全局限速", "data": None}, 429) if ( - (time.time() - config.getRequestTime(request.remote)) + (time.time() - config.getRequestTime(request.remote_addr)) < (config.read_config("security.rate_limit.ip")) ): return handleResult({"code": 5, "msg": "IP限速", "data": None}, 429) # update request time config.updateRequestTime('global') - config.updateRequestTime(request.remote) + config.updateRequestTime(request.remote_addr) # check host if (config.read_config("security.allowed_host.enable")): if request.remote_host.split(":")[0] not in config.read_config("security.allowed_host.list"): if config.read_config("security.allowed_host.blacklist.enable"): - config.ban_ip(request.remote, int(config.read_config("security.allowed_host.blacklist.length"))) + config.ban_ip(request.remote_addr, int(config.read_config("security.allowed_host.blacklist.length"))) return handleResult({'code': 6, 'msg': '未找到您所请求的资源', 'data': None}, 404) try: resp = await handler(request) - aiologger.info(f'{request.remote} - {request.method} "{request.path}", {resp.status}') + aiologger.info(f'{request.remote_addr} - {request.method} "{request.path}", {resp.status}') return resp except: logger.error(traceback.format_exc())