57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			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() |