将超时设置为PHP函数


Set timeout to a PHP function

我有这个脚本

<?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 = '

谢谢。

我会使用dig:dig-x${ip}+时间=5次+尝试=1次+重试=0次+短

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

您想要检查man nslookup,它会告诉您命令应该是:

nslookup -timeout 5 1.1.1.1 | grep 'name = '

您的太多了