From c50c892a7895b8a90e948003b7013ac06c6163f8 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Sat, 2 Oct 2010 21:17:04 +0200 Subject: [PATCH] ipban: support v6 IPs (mapping mask 1 to /16, 2 to /32, 3 to /48, 4 to /64) --- qcsrc/server/ipban.qc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/qcsrc/server/ipban.qc b/qcsrc/server/ipban.qc index ebc58cea7..ad09772a5 100644 --- a/qcsrc/server/ipban.qc +++ b/qcsrc/server/ipban.qc @@ -336,19 +336,27 @@ float Ban_GetClientIP(entity client) string s; s = client.netaddress; - + i1 = strstrofs(s, ".", 0); + if(i1 < 0) + i1 = strstrofs(s, ":", 0); if(i1 < 0) return FALSE; i2 = strstrofs(s, ".", i1 + 1); + if(i2 < 0) + i2 = strstrofs(s, ":", i1 + 1); if(i2 < 0) return FALSE; i3 = strstrofs(s, ".", i2 + 1); + if(i3 < 0) + i3 = strstrofs(s, ":", i2 + 1); if(i3 < 0) return FALSE; i4 = strstrofs(s, ".", i3 + 1); + if(i4 < 0) + i4 = strstrofs(s, ":", i3 + 1); if(i4 >= 0) - return FALSE; + s = substring(s, 0, i4); ban_ip1 = substring(s, 0, i1); ban_ip2 = substring(s, 0, i2); -- 2.39.2