Skip to content

Instantly share code, notes, and snippets.

@ictus4u
Created September 26, 2022 12:56
wireguard - Exclude single ip
#!/usr/bin/env python
from ipaddress import ip_network
from sys import argv
start = '0.0.0.0/0'
exclude = argv[1:]
result = [ip_network(start)]
for x in exclude:
n = ip_network(x)
new = []
for y in result:
if y.overlaps(n):
new.extend(y.address_exclude(n))
else:
new.append(y)
result = new
print(','.join(str(x) for x in sorted(result)))
@ictus4u
Copy link
Author

ictus4u commented Sep 26, 2022

Thanks to Daniel Lautenbacher

Slighly modified to read exclusion arguments from command line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment