0

私はこのスクリプトを持っています

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

ありがとう。

4

2 に答える 2

0

dig を使用します: dig -x ${ip} +time=5 +tries=1 +retry=0 +short

このコマンドは IP アドレスのみを返すため、解析ビットが簡素化されます。

于 2013-08-07T13:20:59.180 に答える
0

man nslookupコマンドが次のようになることを確認します。

nslookup -timeout 5 1.1.1.1 | grep 'name = '

- が 1 つ多すぎます

于 2013-08-07T13:19:38.547 に答える