将超时设置为PHP函数

时间:2013-08-07 13:13:26

标签: php linux bash function timeout

我有这个脚本

<?php
function get_reverse_dns($Ip)
{
    $result = exec("nslookup -n ".escapeshellarg($Ip)." | grep 'name = '");
    if(strpos($result,"name =") === false)
    {
        return "NO REVERSE";
    }
    else
    {
        $result = trim($result);
        $ExplodedResult = explode("name =",$result);
        $ExplodedResult[1] = trim($ExplodedResult[1]);
        $ReverseDns = trim($ExplodedResult[1],".");
        return $ReverseDns;
    }
}
?>

给了我反向dns,现在的问题是,有时候,IP可能会有很长的延迟,我希望这个脚本检查IP可以“查找”,如果5秒钟过去了这种情况没有发生,然后是return false

我该怎么做?

我在linux上试过

nslookup --timeout 5 1.1.1.1 | grep 'name = '
timeout 5 nslookup 1.1.1.1 | grep 'name = '

感谢。

2 个答案:

答案 0 :(得分:0)

您想要检查man nslookup,该命令应该是:

nslookup -timeout 5 1.1.1.1 | grep 'name = '

你有一个太多的

答案 1 :(得分:0)

我会用dig: dig -x $ {ip} + time = 5 + tries = 1 + retry = 0 + short

此命令仅返回IP地址,因此它将简化您的解析位。