对,我有一个PHP脚本在工作,其中服务器ping的客户端。我面临的问题是,有时服务器无法联系客户端,但是当我手动ping客户端时,它就能ping通。最好的方式来ping客户端
我使用ping命令是这个ping -q -w 3 -c 1 <ipaddresshere>
什么是查验客户也许2/3倍留下像2/3第二间隙如果平之前失败的最好方法重试?
对,我有一个PHP脚本在工作,其中服务器ping的客户端。我面临的问题是,有时服务器无法联系客户端,但是当我手动ping客户端时,它就能ping通。最好的方式来ping客户端
我使用ping命令是这个ping -q -w 3 -c 1 <ipaddresshere>
什么是查验客户也许2/3倍留下像2/3第二间隙如果平之前失败的最好方法重试?
因为您处于unix环境中,您可以随时调用shell脚本来处理循环和等待。但我很惊讶,你不能这样做的PHP内。
此外,我不确定您的示例ping命令,我检查的2个不同环境似乎对您提到的选项有不同的含义,而不是您似乎打算的。尝试man ping
或ping --help
下面的脚本应该给你一个实现ping-retry的框架,但我不能在这上面花很多时间。
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
我希望这有助于。
P.S.因为你似乎是一个新用户,如果你得到一个可以帮助你的答案,请记住将它标记为已接受,并且/或者给它一个+(或 - )作为有用的答案。
对于php,你可以试试PEAR的Net_PING包。
这里是一个链接引导你通过它 http://www.codediesel.com/php/ping-a-server-using-php/
说给予好评需要15次,伟大的回答,非常感谢。当我拿到15个代表时,我会积极投票。 – unleashed 2011-05-20 11:24:25
很久以前,我为他挺身而出。 :) – 2015-06-09 17:31:59
@GinzoMilani:tnx! – shellter 2015-06-09 18:17:25