Python 如何在Tornado中获取服务器IP地址?
在基于tornado的应用程序中,我需要在会话中存储服务器的IP地址(例如,用户用于连接到服务器的地址)。如何在Tornado中确定此IP地址?我使用的是Tornado 2.4.1。您可以将Python 如何在Tornado中获取服务器IP地址?,python,tornado,Python,Tornado,在基于tornado的应用程序中,我需要在会话中存储服务器的IP地址(例如,用户用于连接到服务器的地址)。如何在Tornado中确定此IP地址?我使用的是Tornado 2.4.1。您可以将HttpServerRequest对象挖掘为 不过,您使用的是Tornado的一个非常旧的版本。您可以将HttpServerRequest对象作为一个对象进行挖掘 不过,您使用的是Tornado的一个非常旧的版本。如果您不介意添加一些依赖项,您可以从以下位置执行此操作: 这里需要注意的一点是,可以包含端口号。
HttpServerRequest
对象挖掘为
不过,您使用的是Tornado的一个非常旧的版本。您可以将
HttpServerRequest
对象作为一个对象进行挖掘
不过,您使用的是Tornado的一个非常旧的版本。如果您不介意添加一些依赖项,您可以从以下位置执行此操作:
这里需要注意的一点是,可以包含端口号。这就是为什么首选使用
urlparse
解析它的原因。如果您不介意添加一些依赖项,可以通过以下方式进行解析:
这里需要注意的一点是,可以包含端口号。这就是为什么首选使用
urlparse
socket对其进行解析。gethostbyname将在DNS查询完成时挂起Tornado事件循环。在现代Tornado中,请改用Tornado.netutil.Resolver.socket.gethostbyname在DNS查询完成时将挂起Tornado事件循环。在现代Tornado中,请改用Tornado.netutil.Resolver。
import socket
import urlparse
hostname = urlparse.urlparse("%s://%s"
% (self.request.protocol, self.request.host)).hostname
ip_address = socket.gethostbyname(hostname)