2014-07-15 1 views
-1

PHP를 사용하여 내 프로젝트 중 하나에 대한 클라이언트의 표준 시간대를 얻으려고합니다. 내가 찾고있는 솔루션에 대한 stackoverflow 게시물을 보았다. 이 게시물에 대한 링크가 있습니다. PHP - 대상 컴퓨터가 적극적으로 거부했기 때문에 연결할 수 없습니다.

get user timezone

은 내가 가장 upvoted 솔루션을 따라하지만이 같은 오류 무언가를 생산했다. 212.88.207.202 $ip

enter image description here

한다고 가정 $_SERVER['REMOTE_ADDR'] 반환, 내 론적 메타 단계에서 $ip에 그 값을 하드 코딩. 212.88.207.202을 하드 코딩하거나 $_SERVER['REMOTE_ADDR']을 사용하면이 값이 $ip으로 반환되므로 중요하지 않습니다.

하지만 페이지를 실행할 때이 오류가 발생합니다.

Warning: file_get_contents(http://smart-ip.net/geoip-json/212.88.207.202): failed to open stream: No connection could be made because the target machine actively refused it. 

여기에 코드를 내가 잘못 않았다

<?php 

$ip  = '212.88.207.202'; // means we got user's IP address 
$json = file_get_contents('http://smart-ip.net/geoip-json/' . $ip); // this one service we gonna use to obtain timezone by IP 
// maybe it's good to add some checks (if/else you've got an answer and if json could be decoded, etc.) 
$ipData = json_decode($json, true); 
//var_dump($ipData); 
if ($ipData['timezone']) { 
    $tz = new DateTimeZone($ipData['timezone']); 
    $now = new DateTime('now', $tz); // DateTime object corellated to user's timezone 
} else { 
    // we can't determine a timezone - do something else... 
} 
?> 

이다 ???

+0

대상 시스템이 일부 조건으로 인해 연결이 끊어졌습니다. 이것은 서비스 조건에 따라 여러 가지 이유가있을 수 있습니다. 어떤 이유로 IP가 블랙리스트에 올라 있거나 현재 서비스를 사용할 수 없습니다. 매개 변수를 잘못 전달할 수도 있습니다. 당신이 더 많은 코드를 게시하지 않는다면 우리는 여기서 정말로 당신을 도울 수 없습니다. – Steini

+0

코드를 추가했습니다. @Steini –

+1

고마워, 글쎄, 문제가 이미 smart-ip.net에있는 것 같아. 내 브라우저에서 열 수는 없어. 이게 뭐야? 이 서비스는 개방형 서비스입니까 아니면 자체 도메인입니까? – Steini

답변

1

음 ..... 문제는 대상 컴퓨터에 있습니다. 브라우저에서 smart-ip.net을 열어 보았지만 그렇게 할 수 없었습니다. 나는 그들이 더 이상 그들의 서비스를 운영하지 않는다고 생각한다. 그래서 타겟 머신이 내 연결을 적극적으로 거부하는 이유입니다. 비올라!