如何在Tornado中获取服务器IP地址?
在我的基于Tornado的应用程序中,我需要把服务器的IP地址(比如用户用来连接服务器的地址)存储在会话中。请问在Tornado中怎么获取这个IP地址呢?我现在用的是Tornado 2.4.1版本。
2 个回答
1
你可以查看一下 HttpServerRequest
这个对象,具体内容可以在这里找到。
不过,你使用的 Tornado 版本有点旧了。
4
如果你不介意添加一些额外的依赖库,你可以在一个请求处理器中做到这一点:
import socket
import urlparse
hostname = urlparse.urlparse("%s://%s"
% (self.request.protocol, self.request.host)).hostname
ip_address = socket.gethostbyname(hostname)
这里有个重要的点要注意,self.request.host
可能会包含一个端口号。这就是为什么建议使用 urlparse
来解析它。