2012-03-15 11 views
3

Quora의 가장 큰 특징 중 하나는 로그 아웃 할 때 로그인 자격 증명 (즉, 세션)이 다른 컴퓨터에서 유효하다는 것입니다. 해당 세션이 시작된시기를 확인하고 해당 세션을 로그 아웃 할 수 있습니다.사용자가 현재 로그인 한 터미널을 어떻게 추적 할 수 있습니까?

Quora가 어떻게이 작업을 수행 할 수 있습니까? 이 기능을 복제하려면 어떻게해야할까요?

루비에서 대부분의 코딩 작업을 수행하므로 누구나 그 맥락에서 대답하고 싶다면 위대할지 모르겠지만 관계없이 답변을 볼 수는 있습니다.

답변

0

서버에 HTTP 요청을하면 해당 요청과 함께 보낸 헤더에는 요청을 보낸 IP 주소가 포함됩니다. 컨트롤러의 헤더 전체 세트를 사용할 수 있으며 IP 주소는 request.client_ip과 함께 쉽게 사용할 수 있습니다.

해당 IP 주소와 연관된 호스트 이름을 얻으려면, 당신은이 같은 '역 DNS 검색 "을 수행해야합니다 :

require "socket" 

Socket.gethostbyname(request.client_ip) 

을이 아마 app/lib에 작은 도서관을 보증하는 당신이 할 수있는 requireapplication_controller.rb을에 . 몇 줄의 코드 일 뿐이지 만 멋진 이름을 요구합니다 :-)

관련 문제