Python脚本WireGuard配置排除ip 192.168.0.0/16,172.16.0.0/12,10.0.0.0/8局域网段 在线生成wireguard排除的ip地址段

 [Interface]
PrivateKey = 本地私钥
Address = 172.0.0.2/32
DNS = 8.8.8.8, 114.114.114.114
[Peer]
PublicKey = 对端公钥
#排除 192.168.0.0/16,172.16.0.0/12,10.0.0.0/8
AllowedIPs = 0.0.0.0/5,8.0.0.0/7,11.0.0.0/8,12.0.0.0/6,16.0.0.0/4,32.0.0.0/3,64.0.0.0/2,128.0.0.0/3,160.0.0.0/5,168.0.0.0/6,172.0.0.0/12,172.32.0.0/11,172.64.0.0/10,172.128.0.0/9,173.0.0.0/8,174.0.0.0/7,176.0.0.0/4,192.0.0.0/9,192.128.0.0/11,192.160.0.0/13,192.169.0.0/16,192.170.0.0/15,192.172.0.0/14,192.176.0.0/12,192.192.0.0/10,193.0.0.0/8,194.0.0.0/7,196.0.0.0/6,200.0.0.0/5,208.0.0.0/4,224.0.0.0/3
Endpoint = 对端地址:端口

--------------------------------------------------------------------------
Python脚本

#!/usr/bin/python
from ipaddress import ip_network
start = '0.0.0.0/0'
exclude = ['192.168.0.0/16','172.16.0.0/12','10.0.0.0/8']
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)))

--------------------------------------------------------------

在线生成wireguard排除的ip地址段:



全球ip地址段 不同国家ip:https://www.ipdeny.com/ipblocks/