1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/usr/bin/env python3.6
import time
import re
import subprocess
from cgi import parse_qs
zone = "wire-me.de"
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
args = parse_qs(environ['QUERY_STRING'])
host = args.get('host', ['0'])[0]
if re.match('[0-9a-z-_]+', host):
yield(subprocess.run(["/usr/local/bin/pdnsutil", "delete-rrset", zone, host, "A"], stdout=subprocess.PIPE).stdout)
for ip in args.get('ip', ['0']):
if re.match('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', ip):
yield(subprocess.run(["/usr/local/bin/pdnsutil", "add-record", zone, host, "A", ip], stdout=subprocess.PIPE))
yield(subprocess.run(["/usr/local/bin/pdnsutil", "list-zone", zone], stdout=subprocess.PIPE).stdout)
|