2012-03-08 22 views
0

私はユーザー提供のWebページへのリンクを記録するサイトを持っています。私はそれらが有効であればそれらを記録したいだけです。ワイルドカードリゾルバでドメインの有効性を確認してください

私はドメイン有効性を確認するためにcheckdnsrr($domain, 'A')を使用していましたが、これは常にtrueを返すことに気付きました。私は共有ホスティングにいるので(私は何も変更することはできません)。私はサーバ管理者にバグを報告し、彼は答えました:

私たちはサーバー上のリゾルバにOpenDNSを使用します。彼らのリゾルバは無効なドメインを指すようにワイルドカードを設定しているので、無効なドメインに対してもIP/DNSレコードを返すでしょう。このため、入力するすべてのドメインにAレコードがあると表示されます。

いいえ。

無効なドメインにはcURLを使用しないでください。実際はもっと大きな問題があります。私はこのリゾルバが "このドメインは存在しません"のような何らかのエラーページを返し、おそらく有効な返品ステータス200または他の何らかのものを発行すると信じています。このステータスを使用して、ページが実際に有効であることを確認します。したがって、無効なドメインは、自分のサイトで有効と記録されます。

(ユーモラスに、無効なURLを持つ有効なドメインは、ページが404またはその他のエラー状態になることにつながります。は、と記録されます)。

とにかく、ドメインの有効性を確認するための方法はありますか?私はサードパーティのサイトを使用しても構いません。

+0

curlを使用すると、おそらく無意味になります。PHPと同じリゾルバを使用していて、opendnsが提供しているどのIPでも終わるでしょう。 –

答えて

0

OpenDNSは、通常、NXDOMAIN(無効)になるすべてのドメインに対して同じIPを返します。あなたのチェックの結果がそのIPなら、それは無効であると考えてください。 1つの追加チェックですが、有効な回避策である必要があります。

+0

これは良いスタートのようですね。a)PHPの文字列からドメインのIPを取得し、b)この "すべてのドメインの同じIP"が何であるか把握していますか?また、予期せずに時々変化することを心配する必要がありますか? –

+0

@tandu、あなたは[gethostbyname()](http://www.php.net/manual/en/function.gethostbyname.php)でipを取得できるようです。おそらく、無効なホスト(例:dfgdfgdg.com)を使ってホストから実行して、「無効」とみなす必要のあるIPを取得する必要があります。あなたは物事を変えるときには、DNSプロバイダーの慈悲を受けていますが、それはかなり安定しているはずです。 – bloy

関連する問題