Php ping客户端的最佳方式
好的,我有一个PHP脚本,服务器ping是一个客户端。我面临的问题是,有时服务器无法联系客户机,尽管当我手动ping客户机时,它ping成功 我使用的ping命令是thisPhp ping客户端的最佳方式,php,unix,network-programming,Php,Unix,Network Programming,好的,我有一个PHP脚本,服务器ping是一个客户端。我面临的问题是,有时服务器无法联系客户机,尽管当我手动ping客户机时,它ping成功 我使用的ping命令是thisping-q-w3-c1 ping客户端的最佳方式是什么?如果ping在重试之前失败,可能会2/3次,然后像2/3秒的间隔那样离开。由于您处于unix环境中,因此始终可以创建并调用shell脚本来处理循环和等待。但我很惊讶,你不能在php内部做到这一点 另外,我不确定您的示例ping命令,我检查的两个不同的环境对您提到的选项的
ping-q-w3-c1
ping客户端的最佳方式是什么?如果ping在重试之前失败,可能会2/3次,然后像2/3秒的间隔那样离开。由于您处于unix环境中,因此始终可以创建并调用shell脚本来处理循环和等待。但我很惊讶,你不能在php内部做到这一点 另外,我不确定您的示例ping命令,我检查的两个不同的环境对您提到的选项的含义似乎与您想要的不同。尝试
man ping
或ping--help
下面的脚本应该为您提供一个实现ping重试的框架,但我不能在上面花费太多时间
cat pingCheck.sh
#! /bin/bash -vx
IPaddr=$1
: ${maxPingTries:=3}
echo "maxPingTries=${maxPingTries}"
pingTries=0
while ${keepTryingToPing:-true} ; do
if ping -n 3 -r 1 ${IPaddr} ;then
keepTryingToPing=false
else
sleep ${sleepSecs:-3}
if (( ++pingTries >= maxPingTries )) ; then
printf "Execeeded count on ping attempts = ${maxPingTries}\n" 1>&2
keepTryingToPing=false
fi
fi
done
我希望这有帮助
另外,由于您看起来是一个新用户,如果您得到的答案有助于您记住将其标记为已接受,和/或给它一个+(或-)作为有用的答案。由于您在unix环境中,您始终可以生成并调用shell脚本来处理循环和等待。但我很惊讶,你不能在php内部做到这一点 另外,我不确定您的示例ping命令,我检查的两个不同的环境对您提到的选项的含义似乎与您想要的不同。尝试
man ping
或ping--help
下面的脚本应该为您提供一个实现ping重试的框架,但我不能在上面花费太多时间
cat pingCheck.sh
#! /bin/bash -vx
IPaddr=$1
: ${maxPingTries:=3}
echo "maxPingTries=${maxPingTries}"
pingTries=0
while ${keepTryingToPing:-true} ; do
if ping -n 3 -r 1 ${IPaddr} ;then
keepTryingToPing=false
else
sleep ${sleepSecs:-3}
if (( ++pingTries >= maxPingTries )) ; then
printf "Execeeded count on ping attempts = ${maxPingTries}\n" 1>&2
keepTryingToPing=false
fi
fi
done
我希望这有帮助
另外,由于您看起来是一个新用户,如果您得到的答案有助于您记住将其标记为已接受,和/或将其作为有用的答案,并给它一个+(或-)作为有用的答案。对于php,您可以尝试PEAR的Net_-PING软件包 这里有一个链接可以引导您通过它
对于php,您可以尝试PEAR的Net\u-PING包 这里有一个链接可以引导您通过它
说upvote需要15次重复,回答得很好,非常感谢。当我得到15次时,我会向上投票。说向上投票需要15次,回答得很好,非常感谢。当我得到15次重复时,我将向上投票。