서버시간을 불러오는 사이트를 만들고있는데요, 소스좀 봐주실 수 있나요? 채택완료
소스코드를 이용하여 작업을 해보고 있는데요(닷홈 무료호스팅이용중)
주소를 입력하고 서버시간 불러오는 속도가 굉장히 느립니다.
더불어 시간이 1970년 무슨 이런식으로 이상하게나오네요
이에관하여 지식을 얻을 수 있을까요?
Copy
<?/*해당 서버의 시간 알아오기*/$host=$_GET['host'];$host=ereg_replace("^.*//", "", $host);?><style>body, input, td, div{ font-family : arial,굴림; font-size : 9pt;}.button{ border-width : 1px; border-style : solid; border-color : #9F3515; background : #FF754B; color : #ffffff; height : 20px; font-weight : bold; padding : 2px 1px 0px 1px;}.input{ border-width : 1px; border-style : solid; border-color : #777777; background : #ffffff; color : #000000; height : 20px; padding : 1px 1px 0px 1px;}</style></head><body><table align="center" bgcolor="#FFE241" border="0" cellpadding="15" cellspacing="1" width="100%"> <tr> <td bgcolor="#FDF7D5"> 시간을 확인할 서버의 도메인(또는 IP address)을 입력하세요. (예:ebs.co.kr)<br><br> <form style="display:inline">http:// <input class="input" name="host" size="30" type="text" value="<?=$host?>"> <input class="button" type="submit" value="확인"> </form> </td> </tr></table><?if($host){ $fp=@fsockopen($host, 80, $errno, $errstr, 3); if($fp) { $gap=time(); fputs($fp, "GET /test_request HTTP/1.0n"); fputs($fp,"n"); $data=''; while(! feof ($fp)) { $data .=fgets ($fp, 1024); } fclose ($fp); $data=explode("Date: ", $data); $data=explode(" GMT", $data[1]); $data=strtotime($data[0]) + 9 * 3600; $data=(int)$data; if(!$data) { echo "<br><br>서버 접속에 실패하였습니다."; } else { $gap=time() - $gap; $data=$data + $gap;?> <br><br><font style="font-size:20pt"><b><?=$host ?></b>의 현재시간은...<br><b><div id="timeArea" style="display:inline; font-size:20pt"></div></b>입니다.</font> <script language="javascript"> var timePass = 0; function showTime() { var now = new Date(); var timeStamp = (<?=$data?> + timePass) * 1000; now.setTime(timeStamp); var yy = now.getFullYear(); var mm = now.getMonth() + 1; var dd = now.getDate(); var hh = now.getHours(); var ii = now.getMinutes(); var ss = now.getSeconds(); document.getElementById('timeArea').innerHTML = yy + "년 " + mm + "월 " + dd + "일 " + hh + "시 " + ii + "분 " + ss + "초"; timePass++; setTimeout("showTime()", 1000); } showTime(); </script><? } } else { echo "<br><br>서버 접속에 실패하였습니다."; }}?></body>);
답변 1개
채택된 답변
+20 포인트
마르스컴퍼니
8년 전
제가 해당 소스로 테스트했을 때는 정상적으로 나오는 경우도 있습니다.
sir.kr 등
다만, 일부 사이트의 경우에는.. 다른 Response 가 나오거나, Response 를 주지 않는 경우로 인해..
그러한 문제가 발생하는 듯 싶습니다. 이에 대한 다른 방법을 찾아봐야 하지 않을까 합니다.
1970년 등으로 나오는 이유는 timestamp 가 1970년 1월 1일을 기준으로 한 것이라서..
값을 전혀 못받아올 때.. 즉 값이 없을 때.. 그렇게 나올 것입니다.
즉, 값을 가져오는 시간이 오래 걸리는 것은 Response 를 못 받는 것이고,
결국 시각 정보는 받지 못해서.. 1970 년 등으로 나오는 것 같습니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
8년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
네이비즘에서 소스를 공개했었다고하는데 찾을수가없네요
쉬운일이아니군요!