#!/bin/bash
set +e
python3 - <<'PY'
import ipaddress,json,subprocess,shutil
protected=['172.96.184.87','139.162.96.131','172.233.84.207','42.71.16.140','114.41.0.27','1.168.188.194']
denied=[]
backend='none'
if shutil.which('csf'):
backend='csf'
try: lines=open('/etc/csf/csf.deny',errors='replace')
except OSError: lines=[]
for line in lines:
token=line.split('#',1)[0].strip().split()
if not token: continue
try: denied.append(ipaddress.ip_network(token[0],strict=False))
except ValueError: pass
elif shutil.which('wpmm-firewall'):
backend='wpmm_nft'
p=subprocess.run(['/usr/local/sbin/wpmm-firewall','status'],text=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
if p.returncode==0:
for value in json.loads(p.stdout).get('permanent',[]):
try: denied.append(ipaddress.ip_network(value,strict=False))
except ValueError: pass
print('backend=%s deny_networks=%d' % (backend,len(denied)))
for value in protected:
ip=ipaddress.ip_address(value)
print('protected=%s conflicts=%s' % (value,','.join(str(n) for n in denied if ip in n) or 'none'))
for value in ('94.140.112.0/24','85.122.114.0/24'):
n=ipaddress.ip_network(value)
print('test_rule=%s active=%s' % (value,any(n.network_address in x and n.broadcast_address in x for x in denied)))
PY
echo "latest_backup=$(ls -1dt /root/wpmm-backups/auto-bclass-block-* 2>/dev/null | head -1)"
python3 - <<'PY'
import imp,ipaddress
m=imp.load_source('wpmm_watchdog','/usr/local/sbin/wpmm-watchdog')
assert m.network_contains(ipaddress.ip_network('172.56.0.0/16'),ipaddress.ip_network('172.56.4.0/24'))
assert not m.network_contains(ipaddress.ip_network('172.56.0.0/16'),ipaddress.ip_network('172.59.4.0/24'))
print('python_compatibility=ok')
PY