PHP-无法建立连接,因为目标计算机主动拒绝它

时间:2014-07-15 09:50:37

标签: php datetime timezone php-5.3

我正在尝试使用PHP获取我的某个项目的客户端时区。在stackoverflow中看到一篇文章,其中包含我正在寻找的解决方案。这是该帖子的链接。

get user timezone

我遵循了最受赞誉的解决方案,但它产生了类似这样的错误。

enter image description here

假设$_SERVER['REMOTE_ADDR']212.88.207.202返回$ip,我在开发阶段将该值硬编码为$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...
}
?>

我哪里出错???

1 个答案:

答案 0 :(得分:1)

嗯.....问题出在目标机器上。我尝试在浏览器中打开smart-ip.net,但我无法这样做。我认为他们不再运行他们的服务了。这就是为什么目标机器主动拒绝我的连接的原因。中提琴!