¿Cómo bloqueo una dirección IP usando el código Python en Linux?

Use la secuencia de comandos de Python a continuación para bloquear la dirección IP automáticamente en iptables.

Copie el siguiente script como block.py y colóquelo en crontab como

  importar pyshark
 subproceso de importación
 capture = pyshark.LiveCapture (interfaz = 'eth0')
 capture.sniff (tiempo de espera = 50)
 #print len ​​(captura)
 lst1 = []
 # Dirección IP excluida, por lo que debajo de IP no se bloqueará
 lst2 = ['192.168.4.138']
 def blockip (ip):
	 cmd = "/ sbin / iptables -A ENTRADA -s" + ip + "-j DROP"
	 imprimir cmd
	 subprocess.call (cmd, shell = True)

 def blockIP1 (ip):
	 cmd = "/ sbin / iptables -A ENTRADA -s" + ip + "-j DROP"
	 subprocess.call (cmd, shell = True)
	 subprocess.call ("kill -9 $ (/ usr / bin / pgrep dumpcap)", shell = True)
	 subprocess.call ("/ usr / bin / kill -9 $ (/ usr / bin / pgrep tshark)", shell = True)
	 para i en rango (len (captura)):
		 paquete = captura [i]
		 paquete de impresión
		 lst1.append (paquete ['ip']. src)
		 #print lst1
		 ulst1 = conjunto (lst1)
		 #print ulst1
		 ulst1 = lista (ulst1)
	 para i en rango (len (ulst1)):
		 ip = ulst1 [i]
		 si ip no está en lst2:
			 blockIP1 (ip)
 subprocess.call ("kill -9 $ (/ usr / bin / pgrep dumpcap)", shell = True)
 subprocess.call ("/ usr / bin / kill -9 $ (/ usr / bin / pgrep tshark)", shell = True)