2012-02-23 1 views
0

나는 그들의 IP 주소를 사용하여 웹 사이트 방문자의 방문 길이를 탐지하는 것이 가능하다는 것을 알고있다. 그러나 PHP 스크립트를 사용하여 사이트에서 얼마나 많은 시간 또는 분이 온라인 상태인지 어떻게 알 수 있습니까?IP 주소로 "방문 길이"를 감지하는 방법은 무엇입니까?

+2

"방문 길이"를 어떻게 정의합니까? 귀하의 페이지가 브라우저에서 얼마나 오랫동안 열려 있습니까? 또한 IP 주소! == 사용자. – deceze

+0

페이지가 아니지만 사이트 내 –

+0

즉 온라인 시간입니다. – jaypabs

답변

1

정확한 데이터를 수집 할 수 있다고는 생각하지 않지만 가까운 전화를 할 수 있습니다.

a) 사용자가 IP 주소를 참조하여 로그인하는시기를 결정합니다.

b) 사용자가 웹 사이트를 떠날 때 감지합니다.

먼저 데이터베이스 또는 원하는 것을 저장하여 웹 사이트를 탐색하는 IP 주소 레코드를 만들 수 있습니다.

누가 웹 사이트를 탐색하는지 확인하려면 웹 사이트에 들어가 자마자 사용자의 IP 주소를 가져 와서 로그인 시간과 함께 어딘가에 저장할 수 있습니다. 예를 들어 다음 레코드를 사용하여 데이터베이스에 저장할 수 있습니다.

ipAddress | LoginTime | LogoutTime 

누군가가 귀하의 웹 사이트에 들어가 자마자 로그인 시간과 함께 귀하의 기록에 ipAddress를 저장합니다. 저장하기 전에 중복이 존재하지 않는지 확인해야합니다. 즉, 해당 ipAddress가 이미 존재하는지 확인하기 전에 저장합니다. 존재한다면 사용자가 귀하의 웹 사이트를 아직 닫지 않았 음을 의미합니다.

이제 사용자가 웹 사이트를 떠날 때를 결정해야합니다. 사용자가 웹 사이트를 떠날 때 알려주는 window.onunload을 사용하여 자바 스크립트를 통해이를 수행 할 수 있습니다. 사용자가 웹 사이트를 떠날 때를 알기 위해 아약스 전화를 걸 수 있습니다.

$(window).bind('beforeunload', function() { 
    // ajax call 
    // write to db.. 
}); 

이렇게하면 사용자가 언제 웹 사이트를 방문했는지 알 수 있습니다. 나는 이것이 그것이라고 말하지 않는다. 그러나 이것은 당신 자신의 논리를 이해하는 데 도움이 될 것입니다. 이게 당신을 돕기를 바랍니다. 방문자가 마지막 페이지를 닫을 때 당신은 모르실의 때문에

+0

안녕하세요, 익명 방문자를 추적하고 싶습니다. 그들이 내 사이트를 더 이상 탐색하지 않는다는 것을 어떻게 알 수 있습니까? – jaypabs

1

아니, 그것은

. "사이트에서 시간 여행"정확한 감지하는 것은 불가능하지만은 대략적인 시간 사이의 시간을 계산 구입 얻을 수 있습니다 첫 방문과 마지막 방문을 하루에 할 수 있습니다. 각 방문 시간과 "ip"를 저장하고 계산할 수 있습니다.

게다가 가장 좋은 해결책은 일부 타사 분석 서비스를 사용하는 것입니다. Google analytics. 무료이며 매우 강력합니다.

+2

@Col. Shrapnel : 내 첫 번째 라인을 읽었을 뿐이지, 그렇지? 먼저 정확하지 않다고 말했고, 둘째로 "rough approximation"방법을 제공했습니다. 마침내 저는 분석 서비스를 사용하여이 작업을 수행 할 것을 제안했습니다. 정말로 내 대답이 투표해야한다고 생각하십니까? – dennisyuan

0

쉬운 방법 중 하나는 다음과 같습니다. Ajax를 통해.

사용자 세션을 열거 나 시작하고 Ajax에 1 분에 1 회 서버를 ping하십시오.

로그 또는 데이터베이스 또는 플랫에서 해당 IP에 대한 해당 세션의 시작 시간을 기록하고 마지막 핑 시간을 기록 할 수 있습니다.

마지막 ping 시간을 계속 기록하면 범위 내에 있어야합니다. 사용자의 방문 길이 (분).

UPDATE :

당신은 메타 새로 고침 60 초마다와 숨겨진 iframe을 사용하여 동일한 작업을 수행 할 수 있습니다. 대답의 요점은 AJAX로 예제를 제공함으로써 포스터를 돕는 대체 기술을 제안하는 것이 었습니다. 이것은 물론 달성 할 수있는 다른 방법이 있습니다.

+0

... JavaScript가 해제 된 사용자에 대해 알지 못한다는 점을 제외하고는. (나는 당신의 답을 downvoted하지 않았다! 솔직히!) – Arsen7

+0

그것은 iframe 방법을위한 것이다. 메타 태그가 아니라 자바 스크립트를 사용하여 새로 고침을 수행합니다. 그래서 그것은 두 가지 사용자 유형 (유무에 관계없이)을 모두 포착합니다. meta 및 JS 메소드를 사용하면 핑 시간을 60 초보다 훨씬 더 짧은 기간으로 설정할 수 있습니다. – MyStream

0

완전히 다른 방법은 세션 저장소에 액세스하는 것입니다.

세션이 저장되어있는 폴더에 액세스 할 수 있으면 가장 최근에 업데이트되거나 가장 오래된 세션의 목록을 가져올 수 있습니다. 일정 기간 동안 무언가가 비활성 상태 인 경우 세션 파일의 보존 기간을 기준으로 비활성 기간을 식별 할 수 있습니다.

사용자가 사이트를 방문하는 동안 세션 파일을 업데이트하는 방법을 결정하려면 응용 프로그램/웹 사이트에서 결정해야합니다. 세션 파일에 IP를 저장하면 파일에서 다시 읽을 수 있습니다.

이것은 서버가 세션 파일을 재설정하는 빈도에 따라 다르지만 이러한 사항이 사용자의 통제하에있는 경우 고려할 가치가있는 또 다른 기술입니다.

관련 문제