如何跟踪用户当前登录的终端?

时间:2012-03-15 16:47:56

标签: ruby-on-rails ruby-on-rails-3 cookies session-cookies

Quora的一个重要特性是,当您退出时,它能够告诉您其他计算机的登录凭据(即您的会话)是否仍然有效。它可以查看该会话何时开始,并记录该会话。

Quora是如何做到这一点的?怎么会复制这个功能呢?

我在ruby on rails上做了大部分编码,所以如果有人想在这种情况下回答它会很棒,但无论如何我都愿意看到答案。

1 个答案:

答案 0 :(得分:0)

当您向服务器发出HTTP请求时,与请求一起发送的标头包括发出请求的IP地址。控制器中提供了完整的标头集,request.client_ip可以随时使用IP地址。

要获取与该IP地址关联的主机名,您需要执行“反向DNS查找”,如下所示:

require "socket"

Socket.gethostbyname(request.client_ip)

这可能需要保证app/lib中的一个小图书馆,require application_controller.rb {{1}}。它只有几行代码,但需要一个好名字: - )