Už to asi neni aktuální, ale kdyby mněl někdo podobnou touhu tak tady je nástin toho jak dostat ip adresu klienta.
Napsal jsem si vlastní handler který dědí z SimpleHTTPRequestHandler. Podle http://wiki.python.org/moin/BaseHttpServer
Adresa klienta se společně s jeho portem tiskne na výstup. Pro filtraci ji stačí získat z tuplu a otestovat.
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
class MyHaRequestHandler(SimpleHTTPRequestHandler):
# #(X)
# Označuje kod proto aby handler mnel stejnou funkcionalitu jako predtim
# lepsim resenim je napsat si vlastni do_GET a do_HEAD
# více na http://wiki.python.org/…seHttpServer
# nebo si pohrát s dedenim a rodicem tridy "super"
#--------------------------------------------------
#(X) trueHandler bude pro vsechny objekty spolecny
trueHandler = SimpleHTTPRequestHandler
#(X)
trueHandler.protocol_version = "HTTP/1.0"
def do_GET(self):
# client address , port
print "client: " + str(self.client_address)
#(X) proved obsluhu
self.trueHandler.do_GET(self)
#HandlerClass = SimpleHTTPRequestHandler
HandlerClass = MyHaRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
port = 8000
server_address = ('127.0.0.1', port)
is_running = True
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on ", httpd.server_address, "port ", sa[1], ""
while is_running:
httpd.handle_request()
P.S.: V Pythonu jsem nováček a nechtělo se mi na tom stravit moc času, proto budu rád za jakoukoliv konstruktivní kritiku.