【发布时间】:2012-03-08 03:55:30
【问题描述】:
我有一个网站,用于记录指向用户提供的网页的链接。我只想记录它们是否有效。
我使用checkdnsrr($domain, 'A') 来检查域的有效性,我注意到它总是返回true。我在共享主机上(所以我不能改变任何东西)。我向服务器管理员报告了一个错误,他回答:
我们将 OpenDNS 用于服务器上的解析器。他们的解析器即使对于无效域也会返回 IP/DNS 记录,因为它们设置了通配符以将任何无效域指向默认 IP。因此,您输入的所有域都将显示为具有 A 记录。
那好吧。
我想避免在无效域上使用cURL,因为这会浪费,但实际上存在更大的问题。我相信这个解析器会返回某种错误页面,例如“此域不存在”,并发出 200 或其他一些所谓的有效返回状态。我使用此状态来确认页面确实有效,因此现在任何无效域都将被我的站点记录为有效。
(幽默地说,一个有效的域,其 URL 无效,导致页面发出 404 或其他错误状态将不被记录)。
无论如何,还有其他方法可以检查域的有效性吗?我不介意使用一些第三方网站。
【问题讨论】:
-
使用 curl 也可能毫无意义 - 它会使用与 PHP 相同的解析器,并且仍然以 opendns 提供的任何 IP 结束。