【问题标题】:ERROR: 0 - php_network_getaddresses: getaddrinfo failed: Name or service not known错误:0 - php_network_getaddresses:getaddrinfo 失败:名称或服务未知
【发布时间】:2023-03-29 21:25:01
【问题描述】:

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

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)..

【问题讨论】:

    标签: php fsockopen


    【解决方案1】:

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

    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 未静音,则未设置它;)

    【讨论】:

    • 我尝试过但不工作..这是我现在的功能,在下一张图片中我如何调用..你现在有端口和 ip i.imgur.com/5hB3bV4.png i.imgur.com/FSnU9U2.png 同样的错误..
    • @AlexandruValentin 还有同样的错误:$site 在第一个参数而不是$ip ;) 改变它:$fp = @fsockopen($ip, $prt, $errno, $errstr);
    • 但是我有一个服务器,这个站点连接到那个 IP 上的 mysql .. 该站点有另一个 ip .. 所以 .. 我有一个服务器,玩家从一个客户端连接到这个服务器带有 ip 和此端口的 Python .. 或者如何检查 mysql 端口是否打开?您可以在这里查看网站:www.m2kotoba.ro
    • 你不明白我想说什么。你用$site 参数创建一个fsockopen($site),它永远不会在任何地方设置,它不存在,这与fsockopen(null) 完全一样。这就是为什么你得到这样一个错误,你试图打开什么。
    • 啊抱歉.. 但我现在收到此错误.. 错误:111 - 连接被拒绝,如果您不知道,我会搜索如何解决.. 非常感谢 :)
    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 2017-02-21
    • 2013-12-02
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多