from subprocess import Popen,PIPE import re import time import sqlite3 CONCURRENCY_ALLOWED = 60 OUTDATE_TIME = 0 # initializing database db = sqlite3.connect("/tmp/ddos.db3") c = db.cursor() try: c.execute("create table ddos (ip text unique,date integer);") Popen("iptables -F",shell=True,bufsize=1024) except: print "database exists" # unblocking outdated blockings c.execute("select * from ddos") ddos = c.fetchall() for ip,date in ddos: if date + OUTDATE_TIME < time.time(): c.execute("delete from ddos where ip=?",(ip,)) print "unblocking %s" % ip out = Popen("iptables -D INPUT -s %s -j DROP"%ip,shell=True,bufsize=1024,stdout=PIPE).stdout time.sleep(0.1) db.commit()