我有一个问题..我使用此功能
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-&gt; check_ch(13431).. < / p>
答案 0 :(得分:0)
逻辑给我: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
如果没有设置则未设置;)