mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2024-11-22 15:20:09 +01:00
commit
d801c5911e
@ -42,10 +42,22 @@ def regex_match(regex, text):
|
|||||||
pattern = re.compile(regex)
|
pattern = re.compile(regex)
|
||||||
return pattern.search(text) is not None
|
return pattern.search(text) is not None
|
||||||
|
|
||||||
# Check IP format (IPv4 only now)
|
# Check IP format
|
||||||
# TODO: Add IPv6 support
|
|
||||||
def check_IP(ip):
|
def check_IP(ip):
|
||||||
return regex_match("((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}", ip)
|
ip_patterns = (
|
||||||
|
r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}",
|
||||||
|
r"[0-9a-fA-F]{0,4}(:([0-9a-fA-F]{0,4})){1,7}$"
|
||||||
|
)
|
||||||
|
|
||||||
|
for match_pattern in ip_patterns:
|
||||||
|
match_result = regex_match(match_pattern, ip)
|
||||||
|
if match_result:
|
||||||
|
result = match_result
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
result = None
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
# Clean IP
|
# Clean IP
|
||||||
def clean_IP(ip):
|
def clean_IP(ip):
|
||||||
@ -55,11 +67,22 @@ def clean_IP(ip):
|
|||||||
def clean_IP_with_range(ip):
|
def clean_IP_with_range(ip):
|
||||||
return clean_IP(ip).split(',')
|
return clean_IP(ip).split(',')
|
||||||
|
|
||||||
# Check IP with range (IPv4 only now)
|
# Check IP with range
|
||||||
# TODO: Add IPv6 support
|
|
||||||
def check_IP_with_range(ip):
|
def check_IP_with_range(ip):
|
||||||
return regex_match("((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|\/)){4}(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|" +
|
ip_patterns = (
|
||||||
"18|19|20|21|22|23|24|25|26|27|28|29|30|31|32)(,|$)", ip)
|
r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|\/)){4}([0-9]{1,2})(,|$)",
|
||||||
|
r"[0-9a-fA-F]{0,4}(:([0-9a-fA-F]{0,4})){1,7}\/([0-9]{1,3})(,|$)"
|
||||||
|
)
|
||||||
|
|
||||||
|
for match_pattern in ip_patterns:
|
||||||
|
match_result = regex_match(match_pattern, ip)
|
||||||
|
if match_result:
|
||||||
|
result = match_result
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
result = None
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
# Check allowed ips list
|
# Check allowed ips list
|
||||||
def check_Allowed_IPs(ip):
|
def check_Allowed_IPs(ip):
|
||||||
@ -73,14 +96,14 @@ def check_DNS(dns):
|
|||||||
dns = dns.replace(' ','').split(',')
|
dns = dns.replace(' ','').split(',')
|
||||||
status = True
|
status = True
|
||||||
for i in dns:
|
for i in dns:
|
||||||
if not (regex_match("((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}", i) or regex_match("(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z][a-z]{0,61}[a-z]",i)):
|
if not (check_IP(i) or regex_match("(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z][a-z]{0,61}[a-z]",i)):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# Check remote endpoint (Both IPv4 address and valid hostname)
|
# Check remote endpoint
|
||||||
# TODO: Add IPv6 support
|
|
||||||
def check_remote_endpoint(address):
|
def check_remote_endpoint(address):
|
||||||
return (regex_match("((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}", address) or regex_match("(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z][a-z]{0,61}[a-z]",address))
|
|
||||||
|
return (check_IP(address) or regex_match("(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z][a-z]{0,61}[a-z]", address))
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -1118,7 +1141,7 @@ def init_dashboard():
|
|||||||
if 'wg_conf_path' not in config['Server']:
|
if 'wg_conf_path' not in config['Server']:
|
||||||
config['Server']['wg_conf_path'] = '/etc/wireguard'
|
config['Server']['wg_conf_path'] = '/etc/wireguard'
|
||||||
if 'app_ip' not in config['Server']:
|
if 'app_ip' not in config['Server']:
|
||||||
config['Server']['app_ip'] = '0.0.0.0'
|
config['Server']['app_ip'] = '::'
|
||||||
if 'app_port' not in config['Server']:
|
if 'app_port' not in config['Server']:
|
||||||
config['Server']['app_port'] = '10086'
|
config['Server']['app_port'] = '10086'
|
||||||
if 'auth_req' not in config['Server']:
|
if 'auth_req' not in config['Server']:
|
||||||
|
Loading…
Reference in New Issue
Block a user