2010-07-22 59 views

回答

5

我已經捕獲了我的asp.net應用程序中的谷歌爬蟲請求,這裏是谷歌爬蟲的簽名的外觀。

請求IP66.249.71.113
客戶:Mozilla的/ 5.0(兼容;的Googlebot/2.1; + http://www.google.com/bot.html

我的日誌觀察爲谷歌履帶許多不同的IP在66.249.71.*範圍。所有這些IP地理位置都位於美國加利福尼亞州的山景城。

檢查請求是否來自Google抓取工具的一個很好的解決方案是驗證包含Googlebothttp://www.google.com/bot.html的請求。正如我所說的,在同一個請求客戶端上觀察到很多IP,我不建議檢查IP。這可能就是客戶身份進入圖片的地方。所以去驗證客戶端身份。

以下是C#中的示例代碼。

if (Request.UserAgent.ToLower().Contains("googlebot") || 
      Request.UserAgent.ToLower().Contains("google.com/bot.html")) 
    { 
     //Yes, it's google bot. 
    } 
    else 
    { 
     //No, it's something else. 
    } 

重要的是要注意,任何Http客戶端都可以輕易地僞造這個。

+0

他們總是使用這個IP嗎? – CoderHawk 2010-07-22 12:13:36

+0

不,他們被發現在'66.249.71中使用廣泛的IP地址。*' – 2010-07-22 12:15:56

0

如果您使用的是Apache Webserver,您可以查看日誌文件'log \ access.log'。

然後從http://www.iplists.com/nw/google.txt加載谷歌的IP並檢查其中一個IP是否包含在您的日誌中。

+0

nope,這不是一個可靠的方法來做到這一點,因爲客戶IP可以改變。 – 2010-07-22 12:16:42

7

您可以閱讀官方Verifying Googlebot頁面。

引用的頁面在這裏:

您可以驗證一個機器人訪問您的服務器確實是Googlebot (或其他谷歌用戶代理),只要使用反向DNS查找, 確認該名稱是googlebot.com域名,然後使用該googlebot名稱進行正向DNS查找 。如果您擔心垃圾郵件發件人或其他肇事者正在訪問您的網站 ,並聲稱自己是Googlebot,則此功能非常有用。

例如:

> host 66.249.66.1 
1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com. 

> host crawl-66-249-66-1.googlebot.com 
crawl-66-249-66-1.googlebot.com has address 66.249.66.1 

谷歌不會發布IP地址 的網站管理員添加到白名單公開名單。這是因爲這些IP 地址範圍可能會發生變化,從而導致任何網站管理員對其進行硬編碼時出現問題。 Googlebot 識別訪問的最佳方式是使用用戶代理(Googlebot)。

相關問題