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()