如何在Tornado中获取服务器IP地址?

1 投票
2 回答
4474 浏览
提问于 2025-04-18 17:38

在我的基于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 来解析它。

撰写回答