Files
NetBlock-Remote/server.py
2025-10-30 15:24:41 +01:00

57 lines
1.5 KiB
Python

import os, subprocess
from xmlrpc.server import SimpleXMLRPCServer
def firewall_rule():
rule_name = "Inetaccess"
check_cmd = f'''
$rule = Get-NetFirewallRule -DisplayName "{rule_name}" -ErrorAction SilentlyContinue
if ($rule) {{ Write-Host "exists" }} else {{ Write-Host "not_exist" }}
'''
try:
result = subprocess.run(
['powershell', '-Command', check_cmd],
capture_output=True,
text=True,
check=True
)
if "exists" in result.stdout:
return True
create_cmd = f'''
New-NetFirewallRule -DisplayName "{rule_name}" -Direction Outbound -Action Block -Protocol TCP -RemotePort 80,443 -Enabled False
'''
subprocess.run(
['powershell', '-Command', create_cmd],
capture_output=True,
text=True,
check=True
)
return True
except Exception:
return False
def enable():
try:
firewall_rule()
os.system("netsh advfirewall firewall set rule name=Inetaccess new enable=yes")
return 0
except Exception:
return 1
def disable():
try:
firewall_rule()
os.system("netsh advfirewall firewall set rule name=Inetaccess new enable=no")
return 0
except Exception:
return 1
server = SimpleXMLRPCServer(("localhost", 6767))
server.register_function(enable, "enable")
server.register_function(disable, "disable")
server.serve_forever()