2010-04-25 2 views
2

호기심. 나는 온라인으로 고교 축구 게임을 방송하기 시작했으며, 내 컴퓨터에서 피드를 방송하기 위해 프로그램을 사용합니다. 그러나 프로그램을 종료하거나 컴퓨터를 종료하면 서버가 오프라인 상태가되고 손님은 피드에 액세스 할 수 없게됩니다.웹 페이지의 서버 상태 (켜기 또는 끄기)

서버가 켜져 있는지 꺼져 있는지 내 웹 사이트에 게시 할 수있는 코드가 있습니까? 나는 그것이 간단한 코드, PHP 스크립트 또는 주기적으로 사이트가 온라인 상태인지 확인한 다음 ON 또는 OFF로 표시되는지 확인합니다.

+0

한 폐쇄 투표자가 말한 것처럼, 이것이 ServerFault에 속한다고는 말하지 않습니다. 서버가 온라인 상태인지 감지하는 방법을 프로그래밍하는 것입니다. 동사 "프로그래밍"은 명사 "서버"보다 우선합니다. – Matchu

+0

하하, 누가 "태그"라는 태그를 만들었습니까? 매우 묘사적이다. –

+0

@darren : 실제로 흥미로운 매크로 크로스 어셈블러가 그렇듯이. 어쨌든 그것이 태그의 기원이라고 생각합니다. – Joe

답변

1

두 가지 옵션이 있습니다. 첫 번째 옵션은 원격 서버에서 응답을 요청할 수 있으며, 시간 제한이 없으면 오프라인 상태라고 주장합니다. 응답 시간이 느려지거나 사용자가 기다리기를 원하거나 AJAX 요청으로 밀어 넣으면 비디오 플레이어를 제거하고 실패시 알림을 표시 할 수 있습니다.

다른 대안은 공급 실패를 확인하고 서버 오프라인 메시지를 표시하는 것입니다.

+0

AJAX는 물론 도메인 정책에 의해 제한됩니다. – Matchu

+0

웹 사이트가 example.com이고 피드 서버가 feed.example.com 인 경우에도 유용합니다. – Matchu

+0

나는 AJAX에 대한 언급에서 충분히 장황하지 않았다. AJAX 스크립트에 서버를 직접 ping 할 필요는 없습니다. 동일한 도메인에서 프록시 "ping"스크립트를 통해 수행 할 수 있습니다 (그리고 반드시 수행해야합니다). – Aea

5

EDIT : @fsockopen을 사용하거나 실제로 확인하려고하는 내용이므로 무시할 수있는 경고 Cannot connect to the server이 표시됩니다.

$ping = @fsockopen('myURL or IP', 80, $errno, $errstr, 10); 
if (!$ping) // site is down 

예컨대 :

<?php 
$URL = 'randomurlfortestingpurposes.com'; 
$ping = @fsockopen ($URL, 80, $errno, $errstr, 10); 
(!$ping) ? $status = $URL.' is down' : $status = $URL.' is up'; 

echo $status.'<br>'; 

$URL = 'google.com'; 
$ping = @fsockopen ($URL, 80, $errno, $errstr, 10); 
(!$ping) ? $status = $URL.' is down' : $status = $URL.' is up'; 

echo $status; 
?> 

출력

randomurlfortestingpurposes.com is down 
google.com is up 
+0

흠 ... 그 PHP 스크립트를 사용해 보았습니다. 나는 URL 섹션에서 IP 주소를 설정하고 포트를 86 (올바른 포트)로 변경했으며 PHP 파일을 내 서버에 업로드하면 Google에 온라인으로 나열된 동안 오프라인 알림을 제공합니다. 서버가 온라인 상태인지 확인할 수 있습니다. 나는 http://ping.eu/port-chk/을 점검했고 IP/포트가 작동하는지 확인했다. 위의 스크립트와 비슷한 PHP 스크립트를 여러 번 시도했지만 여전히 오프라인 오류를 제공합니다. 내가 뭘 잘못하고 있는지 알기! – Daniel

0

당신은 당신의 서버를 ping하기 위해 PEAR 패키지 "NET_Ping"를 사용할 수 있습니다.

관련 문제