您可以阅读官方验证Googlebot页面.
在此引用页面:
您可以使用反向DNS查找验证访问您服务器的僵尸程序是Googlebot(或其他Google用户代理),验证该名称是否在googlebot.com域中,然后使用该googlebot名称进行正向DNS查询.如果您担心垃圾邮件发送者或其他麻烦制造者在声称自己是Googlebot时访问您的网站,这将非常有用.
例如:
Run Code Online (Sandbox Code Playgroud)> 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.1Google不会将网站站长的公开IP地址列表发布到白名单.这是因为这些IP地址范围可能会发生变化,从而导致任何对其进行硬编码的网站管理员出现问题.识别Googlebot访问权限的最佳方法是使用用户代理(Googlebot).
我在我的asp.net应用程序中捕获了Google抓取工具请求,这里是google抓取工具的签名.
申请IP:66.249.71.113
客户:Mozilla/5.0(兼容; Googlebot/2.1; + http://www.google.com/bot.html)
我的日志在66.249.71.*范围内观察了Google抓取工具的许多不同IP .所有这些IP都位于美国加利福尼亚州山景城的地理位置.
检查请求是否来自Google抓取工具的一个很好的解决方案是验证包含Googlebot和的请求http://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.
}
Run Code Online (Sandbox Code Playgroud)
值得注意的是,任何Http客户端都可以轻易伪造这一点.