2012-05-18 3 views
0

내가 원하는 것은 webdev에 대한 기본적인 지식을 약간 넘어선 것입니다.가동 시간 원격 카운터 PHP

임 인터넷에있는 컴퓨터가 얼마나 많은지를 보여주기 위해 PHP 카운터를 개발할 방법을 찾고 있습니다. (생각하면 그 컴퓨터에 대해 핑으로 해결되어야합니다.)

예 :

컴퓨터 1 : 온라인 - 2시 45분 2초 시간 페이지 새로 고침을 감안할 때 (실시간 여전히 업 카운트)

, 상태가 변경 될 수 있습니다에 :

컴퓨터 1 : 오프라인 - 0시 0분 0초 시간 (아마도 컴퓨터가 꺼져있다) 페이지를 새로 고침 다른로서

는 상태가 변경 될 수 있습니다에 :

컴퓨터 1 : 온라인 - 00:00:01 h (다시 온라인, 새로운 카운트 시작)

필자는 이미 핑 기능을 사용하고 있습니다.

추가 사항 : 이러한 종류의 상태 변경을 일종의 LOG에 등록해야 할 수도 있지만, 지금 당장이를 배경으로 두겠습니다!

편집 : 인스턴트 메신저 PHP에서 물어 보지 만, 쉬운 방법으로 할 수 있습니다, 당신을 듣고! 약간의 영어 실수를위한 Im srry :)

나는 나에게도 설명했기를 바란다! 이미 관심을 가져 주셔서 감사드립니다.

답변

0

또 다른 옵션은 사용자의 IP 주소를 기반으로 데이터베이스 레코드를 지속적으로 업데이트하는 간단한 아약스 호출을하는 것입니다. 10 초 또는 30 초마다 또는 원하는대로 실행할 수 있습니다. 사용자의 IP를 저장하는 MySQL 테이블을 생성하기 만하면 마지막으로 기록 된 datetime이 생성 된 datetime이됩니다. 각 AJAX 호출은 동일한 IP와 마지막으로 기록 된 날짜 시간 (10 초 또는 사용자가 설정 한 값)이있는 행이 있는지 확인하여 새 레코드를 삽입하지 않을 경우 마지막으로 기록 된 datetime을 업데이트합니다 .

PHP 페이지에서 설정 간격 (예 : 10 초) 내에 datetime을 마지막으로 기록한 레코드가 있는지 확인한 다음 자바 스크립트/jquery 시계를 사용하여 경과 시간을 표시 할 수 있습니다 레코드가 생성 된 날짜와 시간.

Google 애널리틱스를 설치하기 만하면 사이트에 누가 있는지 실시간으로 볼 수있는 새로운 실시간 기능이 있습니다.

0

이미 ping 기능이 작동하고 있다면 cron 작업을 설정하여 매분 (예를 들어) 해당 스크립트를 실행 한 다음 ping 함수의 결과를 데이터베이스에 저장하도록 설정할 수 있습니다. MySQL 정도).

상태 페이지를 볼 때 해당 페이지는 데이터베이스의 모든 컴퓨터에 대한 최신 레코드를 가져오고 온라인인지 오프라인인지를 보여줍니다. 온라인 상태 인 경우 현재 세션과 현재 세션에서 특정 컴퓨터가 처음 온라인으로 표시 된 시간 간의 차이를 계산하고 해당 시스템의 가동 시간을 표시 할 수 있습니다.

물론,이 컴퓨터가 실행되는 동안 변경되지 않는 IP 주소를 알고 있다고 가정합니다. (이럴 수는 있겠지만 생각할 수 있습니다.)