如何验证 Googlebot

如何验证 Googlebot

我将屏蔽除大型搜索引擎之外的所有机器人。

我的一个阻止方法是检查“语言”:Accept-Language

如果没有接受语言,机器人的 IP 地址将被阻止直到 2037 年。

Googlebot 没有Accept-Language,我想通过 DNS 查找来验证

<?php
    gethostbyaddr($_SERVER['REMOTE_ADDR']);
?>

可以用吗gethostbyaddr,有人能突破我的“gethostbyaddr保护”吗?

答案1

这其实更应该由 Stack Overflow 而不是 Server Fault 来回答(SEO 网站实际上是最好的),但你那里的答案非常不可靠。googlebot 可能来自任意数量的 IP 地址,因此会进行反向 DNS 查找。可能有数千种不同的选择,如果其中一个发生变化,那么你就已经封锁了一个合法的机器人近 30 年了。

事实上,我刚刚发现了一个Stack Overflow 问题请点击此处这回答了你的问题。这是谷歌搜索“如何识别 Google Bot“。

您可以通过用户代理和 IP 地址来识别搜索引擎。更多信息请参阅如何识别搜索引擎蜘蛛和网络机器人。这个列表也值得一看。但是,您不应该将用户代理(甚至远程主机)视为必然的确定性。用户代理实际上只不过是另一端告诉您的内容,当然它可以自由地告诉您任何事情。编写代码来假装是 Googlebot 很简单。

(笔记:谷歌实际上建议你使用 RDNS 来验证他们的机器人。对于他们的场景来说,这可能没问题,但对于更广泛的使用来说,这肯定不是一个好主意。而且它非常慢)。

相关内容