2016-08-19 9 views
0

ためにgethostbynameを実行します。は最大1秒

print gethostbyname("google.ro"); 

をそれは1秒未満でIPを印刷します。

私はunexistingドメインと同じことをしようとした場合:

print gethostbyname("cduri.ro"); 

それは7-8のよう秒間IPを取得しようとすると、その後、それが失敗し、代わりにドメインを印刷します。

達成したいのは、ドメインが存在しないことを意味することがわかっているので、何とか1秒後にgethostbynameを破ることです。私はドメインの大きなリストを持っているので、到達できないドメインごとに7〜8秒待つことはできません。私は停止し、次のものに移動したい。

これを達成する方法はありますか?

答えて

0

私はマニュアルに見えた:http://www.php.net/manual/en/function.gethostbyname.php を、これが見つかりました:根本的なリゾルバ機能のための

オプションがRES_OPTIONS環境変数を使用して供給することができます。 (少なくともLinuxで、男はresolv.confを参照してください)DNSルックアップのための1秒の最大実行時間を持つように1にタイムアウトと再試行回数を設定します。

putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1'); 
gethostbyname($something); 

あなたはそれを見ていませんか?それとも、Linuxを使っていないのですか?それはあなたのために働いていないのですか?マニュアルにはさらに多くの提案がありますが、私はそれらをすべてリストアップするつもりはありません。

+0

現在私はwamp(windows)でテストしていますが、私がライブに行くときはおそらくlinuxサーバーを持っています。 – paulalexandru

+0

あなたの質問にLinuxでタグを付けると、私はLinuxの答えを出しました。 Windows用に異なるソリューションが必要であることは明らかです。 PHPは基本的にOSで利用可能な基本ルーチンを使用するので、そのタイムアウトを制御する必要があります。電子メールアドレスを確認するためにこれを行うと、それを行うための他の方法があります。 –

+0

はい、PHPを使用すると、LinuxまたはWindowsサーバー上で動作するかどうかを検出できます。つまり、任意のサーバーで正しく動作するために2つのバインドされたソリューションを実装できますか? – paulalexandru

関連する問題