diff --git a/app.py b/app.py index 914bf31..8437997 100644 --- a/app.py +++ b/app.py @@ -63,13 +63,19 @@ def load_user(user_id): return User.query.get(int(user_id)) def get_real_ip(): + if "CF-Connecting-IP" in request.headers: - return request.headers.get("CF-Connecting-IP") - elif "X-Real-IP" in request.headers: - return request.headers.get("X-Real-IP") - elif "X-Forwarded-For" in request.headers: - forwarded_for = request.headers.get("X-Forwarded-For").split(",") - return forwarded_for[0].strip() + return request.headers.get("CF-Connecting-IP").strip() + + if "X-Forwarded-For" in request.headers: + forwarded_for = request.headers.get("X-Forwarded-For") + ip_list = [ip.strip() for ip in forwarded_for.split(",")] + if ip_list: + return ip_list[0] + + if "X-Real-IP" in request.headers: + return request.headers.get("X-Real-IP").strip() + return request.remote_addr