support ipv6

This commit is contained in:
Benny
2023-03-21 08:00:49 +01:00
parent 05f7d5c8d7
commit 20cc0b838b
2 changed files with 9 additions and 7 deletions

View File

@@ -129,6 +129,8 @@ class Cloudflare(Redis):
return result
def ban_new_ip(self, ip):
if ":" in ip:
ip = ip.rsplit(":", 4)[0] + "::/64"
old_ips = [d["ip"] for d in self.get_old_ips()]
old_ips.append(ip)
body = [{"ip": i} for i in set(old_ips)]

View File

@@ -34,13 +34,13 @@ class ResourceHandler(BaseHandler):
def make_some_fun(self):
referer = self.request.headers.get("referer")
if not referer and os.getenv("GIFT"):
ip = self.get_real_ip()
logging.warning("Good luck to %s!", ip)
if not referer:
try:
cf.ban_new_ip(ip)
except Exception as e:
logging.error("Failed to ban %s: %s", ip, e)
if os.getenv("GIFT"):
self.set_header("Content-Type", "text/html")
self.set_header("Content-Encoding", "gzip")
with open("templates/gift.gz", "rb") as f: