我如何驗證 Googlebot

我如何驗證 Googlebot

我將阻止除大型搜尋引擎之外的所有機器人。

我的阻止方法之一是檢查“語言”:Accept-Language

如果沒有 Accept-Language,機器人的 IP 位址將被阻止,直到 2037 年。

Googlebot沒有Accept-Language,我想透過DNS查找來驗證它

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

可以用嗎gethostbyaddr,有人能通過我的「gethostbyaddr保護」嗎?

答案1

對於 Stack Overflow 來說,這確實是一個問題,而不是伺服器故障(SEO 網站實際上是最好的),但你在那裡得到的東西非常不可靠。 googlebot 可以來自任意數量的 IP 位址,從而進行反向 DNS 查找。可能有數千種不同的選擇,如果其中一個發生變化,那麼你已經阻止了一個合法的機器人近 30 年了。

其實我剛剛找到一個堆疊溢位問題在這裡這回答了你的問題。這是谷歌首次點擊“如何辨識 Google 機器人」。

您可以透過使用者代理程式和 IP 位址來識別搜尋引擎。更多資訊可以在如何識別搜尋引擎蜘蛛和網路機器人中找到。這份清單也值得注意。然而,您不應該將用戶代理(甚至遠端主機)視為必然確定的。用戶代理實際上只不過是另一端告訴您的內容,當然它可以自由地告訴您任何資訊。寫程式碼來冒充 Googlebot 很簡單。

(筆記:Google 實際上建議您使用 RDNS 來驗證他們的機器人。這對於他們的場景來說可能沒問題,但對於更廣泛的使用來說肯定不是一個好主意。而且速度非常慢)。

相關內容