确定BaseHTTPServer中的站点域名

1 投票
1 回答
2480 浏览
提问于 2025-04-15 23:27

我正在尝试用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 个回答

1

我想你应该能读取Host头信息。头信息可以通过BaseHTTPRequestHandler.headers来访问。

撰写回答