2012-03-15 88 views
3

Quora的一个重要特性是,它能够在您注销时告诉您其他计算机的登录凭据(即您的会话)是否仍然有效。它能够查看该会话何时开始,并记录该会话。如何跟踪用户当前登录的终端?

Quora能做到这一点怎么样?如何去复制这个功能呢?

我在轨道上做了大部分Ruby编码,所以如果有人想在这种情况下回答,那将是很棒的,但我很乐意看到答案。

回答

0

向服务器发出HTTP请求时,与请求一起发送的标头包括发出请求的IP地址。您的控制器中提供了全套标题,并且request.client_ip的IP地址可随时使用。

要获得与该IP地址相关的主机名,你需要做一个“反向DNS查找”像这样:

require "socket" 

Socket.gethostbyname(request.client_ip) 

这也许值得有点库app/lib,你可以在requireapplication_controller.rb 。这只是几行代码,但要求一个好名字:-)