【问题标题】:Determine site domain in BaseHTTPServer在 BaseHTTPServer 中确定站点域
【发布时间】:2010-06-02 14:00:01
【问题描述】:

我尝试在基于 HTTPServer 的 python 上实现简单的服务器。 如何提取有关当前请求中提供的站点域的信息? 我的意思是它可以服务于多个域,例如 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()

【问题讨论】:

    标签: python dns


    【解决方案1】:

    我猜你应该能够阅读 Host 标头。 可以从 BaseHTTPRequestHandler.headers 访问标头

    【讨论】:

    • 谢谢,我解决了:[domain] = re.findall('Host: (.*?)\r\n',str(self.headers))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2018-07-16
    • 2010-09-18
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多