#!/usr/bin/env python# -*- coding: UTF-8 -*-import BaseHTTPServerimport osimport sysimport urllibfrom StringIO import StringIOdef my_set(d, line): i = line.find('=') if i != -1: k = line[:i] v = line[i+1:] d[k] = v return True return Noneclass Deamon(BaseHTTPServer.BaseHTTPRequestHandler): data = {} ips = [] def do_HEAD(self): return None def do_GET(self): if not self.client_address[0] in Deamon.ips: return None self.send_response(200) self.send_header("Content-type", "text/plain") d = urllib.unquote(self.path[1:]) if my_set(Deamon.data, d): self.resp('OK') else: self.resp(Deamon.data.get(d)) def resp(self, w): s = str(w) length = len(s) self.send_header("Content-Length", str(length)) self.end_headers() self.wfile.write(s)with open('deamon.conf', 'rt') as f: for line in f.readlines(): line = line.strip() if not my_set(Deamon.data, line): if line[0] == '+': Deamon.ips.append(line[1:]) else: port = int(line)s = BaseHTTPServer.HTTPServer(("", port), Deamon)s.serve_forever()