我有一些IP(托管大型二进制文件的其他服务器)及其静态IP。
当用户点击链接时,我想ping每个服务器,直到找到一个在线并将浏览器重定向到适当的URI。如果没有服务器在线,则应显示错误。
答案 0 :(得分:8)
function availableUrl($host, $port=80, $timeout=10) {
$fp = fSockOpen($host, $port, $errno, $errstr, $timeout);
return $fp!=false;
}
//Return "true" if the url is available, false if not.
echo availableUrl("www.google.com");
答案 1 :(得分:1)
您可以使用PHP函数exec()
exec("ping server");
从中获取结果,然后无论如何都要解析它。
$my_output = array();
exec("pwd", $my_output);
var_dump($my_output);
答案 2 :(得分:0)
我不确定这是一个php问题,但在命令行中只是这样做:
ping IP_ADDRESS
答案 3 :(得分:0)
您可以使用this one等库来从PHP中执行ping请求。
shell_exec
也会这样做,但会将输出解析给你。
答案 4 :(得分:0)
如果要回显正在执行的内容,只需将其放入变量中,然后回显该变量即可。请注意,如果您exec("ping -c 5 google.com")
,则需要将其设置为$output .= exec("ping -c 5 google.com");
。使用.=
设置变量可让您在变量中设置多个设置。
$output = null;
$output = exec("pwd");
echo $output;
或者您可以使用shell_exec("pwd")
,这取决于。
很多人都会批评我编写代码的方式。我知道 - 它不是专业的。但它的工作原理! :)
答案 5 :(得分:-1)
我使用fsockopen()来验证即使是在端口上侦听的服务,也不仅仅是主机。