gpt4 book ai didi

php - 如何检查PHP和fsockopen是否存在UDP地址?

转载 作者:行者123 更新时间:2023-12-03 12:06:03 26 4
gpt4 key购买 nike

我正在使用fsockopen从UDP地址获取信息,唯一的问题是某些UDP地址可能仍未处于 Activity 状态。

我通过创建套接字

$fp = fsockopen($tracker, $port, $errno, $errstr, 1);

如果地址有效,则一切正常,但如果地址无效,则产生此错误
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in

我尝试这样做,但仍然会产生错误,
if(!$fp = fsockopen($tracker, $port, $errno, $errstr, 1)) {
// ERROR
} else {
// CONTINUE
}

我可以对它进行错误抑制,并且一切都很好,但是我不喜欢在代码中进行错误抑制。

我如何确保任何给定的UDP地址仍在php中处于 Activity 状态?

谢谢

最佳答案

您可以实现自己的错误处理程序,而不是抑制可能发生的错误@set_error_handler

<?php
//Simple Blank error handler
set_error_handler('my_error_handler');
function my_error_handler($errno, $errstr, $errfile, $errline) {}

function checkUDP($host,$port=80){
//look no suppression
$fp = fsockopen("udp://".$host, $port, $errno, $errstr,1.0);
if (!$fp) {
return false;
} else {
fclose($fp);
return true;
}
}

$good = 'tracker.publicbt.com';
$bad = 'trjjacker.publicbt.com';

if(checkUDP($good)){
echo $good.' Good';
}else{
echo $good.' Bad';
}
echo '<br />';
if(checkUDP($bad)){
echo $bad.' Good';
}else{
echo $bad.' Bad';
}

//tracker.publicbt.com Good
//trjjacker.publicbt.com Bad
?>

关于php - 如何检查PHP和fsockopen是否存在UDP地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10837708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com