Python 确定BaseHTTPServer中的站点域
我尝试在基于HTTPServer的python上实现简单服务器。 如何提取当前请求中服务的站点域的信息? 我的意思是它可以服务于多个域,例如site1.com和site2.com。例如,我如何在以下代码中获得它:Python 确定BaseHTTPServer中的站点域,python,dns,Python,Dns,我尝试在基于HTTPServer的python上实现简单服务器。 如何提取当前请求中服务的站点域的信息? 我的意思是它可以服务于多个域,例如site1.com和site2.com。例如,我如何在以下代码中获得它: from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer class MyHandler(BaseHTTPRequestHandler): def do_GET(self): print "ge
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()
从BaseHTTPServer导入BaseHTTPRequestHandler,HTTPServer
类MyHandler(BaseHTTPRequestHandler):
def do_获得(自我):
打印“获取”
自我发送_响应(200)
self.send_标题(“内容类型”、“文本/html”)
self.end_头()
#如何在这里获取服务站点的主机名?
#site1.com还是site2.com?
域=???
self.wfile.write('欢迎访问www.%s.com'(域))
如果名称=“\uuuuu main\uuuuuuuu”:
尝试:
server=HTTPServer(“”,8070),MyHandler)
打印“已启动httpserver…”
服务器。永远为您服务()
除键盘中断外:
打印“^C已收到,正在关闭服务器”
server.socket.close()
我想您应该能够读取主机标题。
可以从BaseHTTPRequestHandler访问标题。标题我想您应该能够读取主机标题。
可以从BaseHTTPRequestHandler访问头文件。头文件谢谢,我解决它:[domain]=re.findall('Host:(.*)\r\n',str(self.headers))谢谢,我解决它:[domain]=re.findall('Host:(.*)\r\n',str self.headers))