Yurik has uploaded a new change for review.
https://gerrit.wikimedia.org/r/64268
Change subject: Scripts to match IPs against known CIDR blocks and choose the
best.
......................................................................
Scripts to match IPs against known CIDR blocks and choose the best.
Change-Id: Ic861da738df1f4094cc279c0a88246d6914bffaa
---
M maintenance/cidr.py
M maintenance/test.py
2 files changed, 29 insertions(+), 1 deletion(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ZeroRatedMobileAccess
refs/changes/68/64268/1
diff --git a/maintenance/cidr.py b/maintenance/cidr.py
index 492dfb2..8d45d19 100644
--- a/maintenance/cidr.py
+++ b/maintenance/cidr.py
@@ -32,8 +32,12 @@
print()
printDiff(ips, opt[xcs], xcs + ': ')
+def confToIps(confs):
+ return dict([(xcs, IPSet(ips['ips'])) for xcs, ips in confs.items()])
+
+
def printConflicts(confs, extra = None):
- sets = dict([(xcs, IPSet(ips['ips'])) for xcs, ips in confs.items()])
+ sets = confToIps(confs)
if extra is not None:
sets['extra'] = IPSet(extra)
for xcs, ips in sets.items():
@@ -57,3 +61,21 @@
def printAcl(ips):
for ip in cidrToVclStrs(ips):
print(ip)
+
+def findIp(confs, ipaddr):
+ sets = dict([(xcs, [IPNetwork(ip) for ip in ips['ips']]) for xcs, ips in
confs.items()])
+ ip = IPAddress(ipaddr)
+ found = 0
+ for i in range(10):
+ for xcs in sets:
+ for ipn in sets[xcs]:
+ n = IPNetwork(ipn)
+ if n.prefixlen <= i: continue
+ n.prefixlen -= i
+ if ip in n:
+ print('%s found in %s / %s - %d' % (ipaddr, xcs, ipn, i))
+ found += 1
+ if found > 0:
+ break
+ if found > 1:
+ print('*** %s found in %d ranges' % (ipaddr, found))
diff --git a/maintenance/test.py b/maintenance/test.py
index 7194f98..0d34883 100644
--- a/maintenance/test.py
+++ b/maintenance/test.py
@@ -91,4 +91,10 @@
printOptimization(confs)
+def findIpsInConf(file, site = META):
+ confs = getAllConfigs(site)
+ with open(file,'r') as f:
+ for s in f:
+ findIp(confs, s.strip())
+
# checkProdBanners()
--
To view, visit https://gerrit.wikimedia.org/r/64268
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic861da738df1f4094cc279c0a88246d6914bffaa
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ZeroRatedMobileAccess
Gerrit-Branch: master
Gerrit-Owner: Yurik <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits