init commit

main
桜庭清夏 1 year ago
parent f780c8114a
commit 0fc3fcc18a

@ -1,2 +1,73 @@
# Wireguard-AllowedIPs-Calculator
Simple Wireguard AllowedIPs Calculator|简单好用的Wireguard路由IP计算器|簡単なWireguard AllowedIPs計算機
# Simple Wireguard AllowedIPs Calculator
# Usage:
## wg.py (Cli output)
`python3 wg.py -a 0.0.0.0,2001:db8::/32 -d 2001:db8:4001:103::/64`
[-a] AllowedIPs. comma to split the multiple ips.
[-d] DisallowedIPs. comma to split the multiple ips.
## wgpy.py
The same version but accept parameter in python script. you can modify it to your code.
```python
allow_ip_raw = ["0.0.0.0/0","::0/0"]
# Replace the allowed(routed) IP ranges with your IP.
disallow_ip_raw = ["10.0.0.0/8","fc00::/7"]
# Replace the disallowed(not routed) IP ranges with your IP.
```
Warning:THIS PROGRAM IS NO GUARANTEE! PLEASE USE IT AT YOUR OWN RISK. ILLEGAL USE IS STRICTLY PROHIBITED.
# 简单好用的Wireguard路由IP计算器
# 使用方法:
## wg.py (Cli输出)
`python3 wg.py -a 0.0.0.0,2001:db8::/32 -d 2001:db8:4001:103::/64`
[-a] 允许的IP段使用逗号分割。
[-d] 不允许的IP段使用逗号分割。
## wgpy.py
相同版本但不通过Cli指定参数可以修改后应用于其他代码。
```python
allow_ip_raw = ["0.0.0.0/0","::0/0"]
# 用允许的IP(路由的)IP段来替换上面的内容。
disallow_ip_raw = ["10.0.0.0/8","fc00::/7"]
# 用不允许的IP(直接路由不通过wg的IP段)IP段来替换上面的内容。
```
警告:本程序无任何保证, 请自行承担使用风险。严禁利用本程序进行非法活动。本程序作者不负任何责任。
# 簡単なWireguard AllowedIPs計算機
# 使用方法:
## wg.py (Cli出力)
`python3 wg.py -a 0.0.0.0,2001:db8::/32 -d 2001:db8:4001:103::/64`
[-a] アクセス許可のIP範囲指定コンマで多IPを分割する。
[-d] アクセス禁止のIP範囲指定コンマで多IPを分割する。
## wgpy.py
上記と同じだが、Cliを通じてパラメータを取得しない。プログラム内で指定する。編集した後で他のコードでも利用可能。
```python
allow_ip_raw = ["0.0.0.0/0","::0/0"]
# アクセス許可のIP(ルートしたいIP)で替える。
disallow_ip_raw = ["10.0.0.0/8","fc00::/7"]
# アクセス禁止のIP(ルートしたくないIP)で替える。
```
ご注意ください:本プロジェクトは保証なし。自己責任。本プロジェクトを利用して違法犯罪行為をすることは固く禁じます。

53
wg.py

@ -0,0 +1,53 @@
from ipaddress import *
import sys
def check_ip_network_type(address):
try:
return 4 if type(ip_network(address)) is IPv4Network else 6
except ValueError:
return 10
def calc_wg_ip_range(allowed_networking: list, disallowed_networking: list) -> list:
addr = []
output = []
for i in allowed_networking:
count = 0
for j in disallowed_networking:
if j.subnet_of(i):
for allowedip in i.address_exclude(j):
addr.append(allowedip)
count += 1
if count == 0:
addr.append(i)
for res in addr:
for dis in disallowed_networking:
if dis.subnet_of(res):
addr.remove(res)
for strings in addr:
output.append(str(strings))
return output
data = sys.argv[1:]
if len(data) == 0:
print("Usage: [-a] AllowedIPs. comma to split the multiple ips. [-d] DisallowedIPs. comma to split\nExample: allow 0.0.0.0/0, 2001:db8::/32 and disallow 2001:db8:4001:103::/64, please use python3 wg.py -a 0.0.0.0,2001:db8::/32 -d 2001:db8:4001:103::/64")
exit(1)
allow_ip_raw = data[data.index('-a') + 1].split(',')
disallow_ip_raw = data[data.index('-d') + 1].split(',')
allowed_ipv4 = []
allowed_ipv6 = []
disallowed_ipv4 = []
disallowed_ipv6 = []
for ipa in allow_ip_raw:
if check_ip_network_type(ipa) == 4:
allowed_ipv4.append(IPv4Network(ipa))
elif check_ip_network_type(ipa) == 6:
allowed_ipv6.append(IPv6Network(ipa))
for ipd in disallow_ip_raw:
if check_ip_network_type(ipd) == 4:
disallowed_ipv4.append(IPv4Network(ipd))
elif check_ip_network_type(ipd) == 6:
disallowed_ipv6.append(IPv6Network(ipd))
result = f"AllowedIPs = {', '.join(calc_wg_ip_range(allowed_ipv4, disallowed_ipv4) + calc_wg_ip_range(allowed_ipv6, disallowed_ipv6))}"
print(result)

@ -0,0 +1,49 @@
from ipaddress import *
def check_ip_network_type(address):
try:
return 4 if type(ip_network(address)) is IPv4Network else 6
except ValueError:
return 10
def calc_wg_ip_range(allowed_networking: list, disallowed_networking: list) -> list:
addr = []
output = []
for i in allowed_networking:
count = 0
for j in disallowed_networking:
if j.subnet_of(i):
for allowedip in i.address_exclude(j):
addr.append(allowedip)
count += 1
if count == 0:
addr.append(i)
for res in addr:
for dis in disallowed_networking:
if dis.subnet_of(res):
addr.remove(res)
for strings in addr:
output.append(str(strings))
return output
allow_ip_raw = ["0.0.0.0/0","::0/0"]
disallow_ip_raw = ["10.0.0.0/8","fc00::/7"]
allowed_ipv4 = []
allowed_ipv6 = []
disallowed_ipv4 = []
disallowed_ipv6 = []
for ipa in allow_ip_raw:
if check_ip_network_type(ipa) == 4:
allowed_ipv4.append(IPv4Network(ipa))
elif check_ip_network_type(ipa) == 6:
allowed_ipv6.append(IPv6Network(ipa))
for ipd in disallow_ip_raw:
if check_ip_network_type(ipd) == 4:
disallowed_ipv4.append(IPv4Network(ipd))
elif check_ip_network_type(ipd) == 6:
disallowed_ipv6.append(IPv6Network(ipd))
result = f"AllowedIPs = {', '.join(calc_wg_ip_range(allowed_ipv4, disallowed_ipv4) + calc_wg_ip_range(allowed_ipv6, disallowed_ipv6))}"
print(result)
Loading…
Cancel
Save