在linux中设置默认的ping截止日期

时间:2013-08-09 08:55:40

标签: linux ping icmp

我想在某些设置文件中设置ping的默认截止日期。尝试连接到非ping IP地址时,我的程序挂起。

在终端中,我可以调用“ping 123.0.0.1 -w 5”,它不会永远存在,但我无法在代码中设置任何截止日期。

1 个答案:

答案 0 :(得分:3)

Shell解决方案:

.bashrc添加以下内容:

function ping {
    /bin/ping $@ -w5
}

这将创建一个包装函数,该函数会将所有调用的超时时间设置为5秒{/ 1}}

注意:上面的版本将覆盖命令行上使用的ping参数。如果您仍希望能够通过命令行覆盖默认超时,而不是将-w放在-w5之前:

$@

纯C解决方案:

为简洁起见,我不会在这里举一个完整的例子。例如,您可能会找到一个here。在给定的示例中,您必须替换读取ICMP响应的function ping { /bin/ping -w5 $@ } 调用,并且可以通过超时recvfrom()select()来阻止。