#python #dns
#python #dns
Вопрос:
Я пытаюсь реализовать простой сервер на python на основе HTTPServer. Как я могу извлечь информацию о домене сайта, обслуживаемом в текущем запросе? Я имею в виду, что он может обслуживать несколько доменов, таких как site1.com и site2.com например, как я могу получить это в этом коде:
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
print "get"
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
#how can i get here host name of serving site?
#site1.com or site2.com ?
domain = ???
self.wfile.write('<html>Welcome on www.%s.com</html>' % (domain))
if __name__ == "__main__":
try:
server = HTTPServer(("", 8070), MyHandler)
print "started httpserver..."
server.serve_forever()
except KeyboardInterrupt:
print "^C received, shutting down server"
server.socket.close()
Ответ №1:
Я думаю, вы должны быть в состоянии прочитать заголовок Host. Доступ к заголовкам можно получить из BaseHTTPRequestHandler.headers
Комментарии:
1. спасибо, я решаю эту проблему: [domain] = re.findall(‘Host: (.*?)r n’,str(self.headers))