ERROR: 0 - php_network_getaddresses: getaddrinfo failed: Name or service not known

ERROR: 0 - php_network_getaddresses: getaddrinfo failed: Name or service not known

我有一个问题..我使用这个功能

public function check_ch($prt){

        $ip = "xx.xx.xx.xxx";
        $port = $prt;

       $fp = @fsockopen($site, $port, $errno, $errstr);
            if (!$fp)
              // return $port;
                return "ERROR: $errno - $errstr<br />\n";
            else
                return 1;

    }

我收到了这个错误..

ERROR: 0 - php_network_getaddresses: getaddrinfo failed: Name or service not known

但只在 php 中..我在 python 中有一些功能,但它在那里工作。看这里:

SERVER1_CHANNEL_DICT = {
    1:{'key':11,'name':'Canal 1','ip':'xx.xx.xx.xxx','tcp_port':13431,'udp_port':13431,'state':STATE_NONE,},
    2:{'key':12,'name':'Canal 2','ip':'xx.xx.xx.xxx','tcp_port':13461,'udp_port':13461,'state':STATE_NONE,},
    3:{'key':13,'name':'Canal 3','ip':'xx.xx.xx.xxx','tcp_port':13491,'udp_port':13491,'state':STATE_NONE,},
    4:{'key':14,'name':'Canal 4','ip':'xx.xx.xx.xxx','tcp_port':13521,'udp_port':13521,'state':STATE_NONE,},
    5:{'key':15,'name':'Canal 5','ip':'xx.xx.xx.xxx','tcp_port':13551,'udp_port':13551,'state':STATE_NONE,},
    6:{'key':16,'name':'Canal 6','ip':'xx.xx.xx.xxx','tcp_port':13581,'udp_port':13581,'state':STATE_NONE,},
}

查看图片

而且我不知道为什么 php 不起作用.. 请帮助我.. 当我调用函数时我把端口.. $this->check_ch( 13431) ..

对我来说合乎逻辑:fsockopen() 第一个参数 $site 未设置。我认为它应该是 $ip 而不是 $site。 顺便说一句,你应该小心,因为 fsockopen() return 是一个资源,当检查它是 return 时你应该严格测试。

public function check_ch($prt)
{
    $ip = "xx.xx.xx.xxx";

    $fp = @fsockopen($ip, $prt, $errno, $errstr);
    if ($fp === false) {
        // return $port;
        return "ERROR: $errno - $errstr<br />\n";
    } else {
        return 1;
    }
}

编辑: 当您使用 @ 使函数静音时,如果遇到问题,第一个反应就是取消静音。你应该有一个报告说 $site 没有被设置,如果它没有被静音 ;)