如何判断访问的用户是正常用户,还是爬虫

作者&投稿:台生 (若有异议请与网页底部的电邮联系)
php判断是爬虫在访问还是用户浏览器在访问~

discuz中的判断方式:

function checkrobot() {
static $kw_spiders = array('bot', 'crawl', 'spider' ,'slurp', 'sohu-search', 'lycos', 'robozilla');
static $kw_browsers = array('msie', 'netscape', 'opera', 'konqueror', 'mozilla');

$useragent = strtolower(empty($useragent) ? $_SERVER['HTTP_USER_AGENT'] : $useragent);
if(strpos($useragent, 'http://') === false && dstrpos($useragent, $kw_browsers)) return false;
if(dstrpos($useragent, $kw_spiders)) return true;
return false;
}

//在一个字符串中,查找多个可选的值,只要找到一个就返回
function dstrpos($string, $arr, $returnvalue = false) {
if(empty($string)) return false;
foreach((array)$arr as $v) {
if(strpos($string, $v) !== false) {
$return = $returnvalue ? $v : true;
return $return;
}
}
return false;
}

用百度工具查看

网站会通过以下几个方面来识别对方是爬虫还是真实用户,让我们一起来看看吧。

一、单一IP非常规的访问频次
我们经常会遇到这样一种情况,提示“刷新频率过快,请歇一会”,这都是网站为了缓解压力才对“用户”作出的限制。而爬虫相对于真实用户来说访问的频次更快,如果单一IP访问频次非常高,那么将会被判为“爬虫”,进而受到限制。

二、单一IP非常规的数据流量
当单一IP的数据流量非常大时,也会引起网站的注意。说到数据流量有些朋友就会有疑问了,下载站的数据流量大也是很正常的。这里说的数据流量不只是单一的下载数据流量,而是大量的并发请求。高并发请求很容易对服务器造成高负荷,所以受到限制也是很正常的。为了避免这个因这个原因被封可以用个ip池量大的http比如ipidea每日覆盖全球的ip资源。

三、headers头部校验
除了上面比较明显的爬虫行为,网站还会校验headers。headers头部的参数很多,其实也容易伪装,但有些初学者往往会忽略。比较常见的是User-Agent、Referer这两个参数,不同的浏览器有不同的User-Agent,访问来源也各不相同,如果不注意的话,很容易被识别。

四、链接
我们知道,爬虫爬取页面时,会识别页面中所有的URL地址去爬取,特别是一些没有明确目标的爬虫。有的网站会将一些链接放在CSS里或者JS里,这些链接正常用户是不会去访问的,它们就相当于陷进,作用是钓出爬虫,一不小心就容易中招。

以上是比较常见的识别爬虫的手段,要想不被目标网站这么快识别,就要有效的规避这几点,做好爬虫策略,当然反爬手段远远不止这些,这就需要好好研究了。

由浅入深:

  1. 请求头,headers可以简单识别,当然修改过的是看不出的!!!

  2. ip,一个固定ip频繁访问,当然,代理ip和动态拨号可以绕过

  3. 用户行为:a.鼠标运行轨迹检测 ,当然可以串改绕过

    b.请求数据目的性 ,当然可以串改绕过




如何判断用户是通过手机浏览还是电脑浏览网站
如何判断是手机还是电脑访问网站:现在由于手机功能的强大,使用手机上网的用户越来越多,那么就需要判断用户是用何种客户端登陆的网站,如果使用的是电脑则使用电脑版本的网页,如果使用的手机则使用手机版本的网页,下面是一段能够判断是手机还是电脑的代码:function check() { var userAgentInfo=navigator.us...

身份认证什么意思?
身份认证也称为“身份验证”或“身份鉴别”,是指在计算机及计算机网络系统中确认操作者身份的过程,从而确定该用户是否具有对某种资源的访问和使用权限,进而使计算机和网络系统的访问策略能够可靠、有效地执行,防止攻击者假冒合法用户获得资源的访问权限,保证系统和数据的安全,以及授权访问者的合法利益。对...

什么是cookie
cookie就是一块数据,一旦你浏览一个站点并且注册一个帐号,一个cookie就被设置以记录你的信息。cookie仅仅保存你登录的信息以使站点检测以前你是否登录过,如果不是,它就会检测你的用户名和密码的正确性,然后登录。从本质上来说它可以看做是你的身份证,但是cookies不能作为代码执行当然也不会传染病毒...

为什么我的IP属地不显示?
1、隐私保护:一些网站或社交平台为了保护用户隐私,会默认不显示IP属地信息。这样可以避免用户的个人信息被泄露,同时也可以减少用户被定向广告等扰的情况。2、可能是虚拟专用网络(VPN)用户:用户可以隐藏自己的真实IP地址,并通过其他国家或地区的虚拟IP地址访问网站或使用社交平台。这些虚拟IP地址并不是真...

内网是何
1、 判断标准之一:0.50或以上版本的BitComet的“全局统计”,里面的对外IP就是公网IP,对内IP就是内网IP,如果这2个值相同那么您就是公网用户,否则就是内网用户。当然,内网用户通过端口映射可以获得和公网完全一样的效果。 2、判断标准之二:用MSN Messenger“工具->选项->连接”中的“高级连接信息”(注意:这里用的...

怎样判断用户需要什么和想要什么?
回答:作为一名销售或者是服务人员,确定客户想要什么是很重要的一点,如果不能把握好客户需求,失败的机率是很大的。 定位客户需求 首先我们要搞清楚:对于个体而言,需求本身存在即合理,不需作真伪之辨。对于服务人员来讲客户既是上帝,我们在为上帝服务的时候,首先就需要搞清楚客户大致需求。获取客户需求信息的...

Windows常用网络命令详解
媒体访问控制地址是计算机用于与网络上远程 TCP\/IP 主机物理通讯的地址。 至此我们可以用ipconfig和ping命令来查看自己的网络配置并判断是否正确、可以用netstat查看别人与我们所建立的连接并找出ICQ使用者所隐藏的IP信息、可以用arp查看网卡的MAC地址。 五、Tracert、Route 与 NBTStat的使用技巧 1、Tracert的使用技巧 ...

cookie机制和session机制的区别
因为session是与用户相关的,在用户之前访问的每一个页面都有可能创建了会话。因此isNew为false只能说用户之前访问过该Web应用,session可以是当前页面创建,也可能是由用户之前访问过的页面创建的。 正确的做法是判断某个session中是否存在某个特定的key且其value是否正确 二十四、Cookie的过期和Session的超时有什么区别 会话...

网页判断输出网页判断输出有何应用
在现代网站设计中,网页判断输出功能被广泛应用,尤其在那些支持不同客户端访问的网站。例如,当用户使用手机通过wap链接访问,网站会返回定制的wap格式页面,而对于iPhone用户,会显示适应其设备布局的内容。在SEO优化中,这一功能显得尤为重要。例如,一些网站只有在用户注册后才能访问特定内容。未登录时,...

从用户需求判断用户价值
首先要判断在所有约束条件下的用户需求究竟是什么样的,然后再判断用户价值。在做需求访谈时,大多得到的是很表层、片面的需求碎片,而用户的真实需求往往需要深入挖掘、提炼、抽象,最终找到真实的需求,才能真正解决用户的问题,即体现用户价值。 举一个电商平台的例子:对于电商平台,用户价值是什么?用户...

临河区17291295528: 登录页面怎么判断是用户登录的还是管理员登录的 -
移烁丹盛: 登录之后管理员能实现的功能通常会更多,会有一些超越普通用户的越级特权存在,可以通过这些进行判断

临河区17291295528: 如何将黑客引到蜜罐系统中?如何区分正常用户的访问还是黑客的访问? -
移烁丹盛: 说实话,如果你会建立一个完整的蜜罐系统,你肯定会有办法区分正常用户还是黑客访问!如果使用的是其他蜜罐软件的话,也需要综合这个软件的反馈信息来加以区分!或者你可以到黑客武林网站上下载一个蜜罐软件学习一下,这类技术一般刚入门的黑客不会知道这类技术.

临河区17291295528: 在登录页面中输入用户名密码怎样进行判断是一般用户还是管理员,然后跳转到不同页面 -
移烁丹盛: <% dim admin_name,admin_pwd,admin_style...

临河区17291295528: 怎么判断用户是否登陆 -
移烁丹盛: 给你详细讲一下.比如系统有个登陆页面(login.jsp):name:_________ password:____________(登陆按钮) 你按下登陆按钮,就根据name和password去数据库里面查,如果判断有此用户并且密码正确,就设置一个session的键对应的值...

临河区17291295528: PHP判断来访是蜘蛛还是普通用户 -
移烁丹盛: 用 $_SERVER['HTTP_USER_AGENT'] 读取 User agent 信息,里面有bot的就是蜘蛛,说其他如 Mozilla什么的就是普通用户.你可以搜索 “搜索引擎名 user agent”获取具体的user agent字符串

临河区17291295528: aspnet用户登录时怎么做区分是管理员还是普通用户? -
移烁丹盛: 一般用两种方法实现1,通过查询当前登陆用户在数据库中某字段已经标记的用户类型实现2,在用户注册时,对用户类型的特征已经标明,只需要登陆提交数据时作判断 第1种方法常用,以下简要介绍 A 数据库准备:表-->U_ID,U_Name(必须唯一,否则,权限不好控制),U_Pwd,U_Q 说明:U_Q为标记用户权限(组)的字段,可以是数字型,文本型,看实际需要 B 登陆界面:至少可以提交验证:U_Name,U_Pwd(密码) 这个过程,就是判断数据库中是否存在这个密码的记录,存在的情况下,你将会获得U_Q,然后你具体做什么就是你的事情了....

临河区17291295528: 一般个人计算机用户登陆是是标准用户还是计算机管理员.怎么判断 -
移烁丹盛: 是管理员,你可以设置密码. 就知道了.在控制面板的用户管理中,

临河区17291295528: 在登录页面中输入用户名密码怎样进行判断是一般用户还是管理员,然后跳转到不同页面 -
移烁丹盛: <!--#include file="conn.asp"--><br><!--自己修改下数据库连接<br>--><% dim admin_name,admin_pwd,admin_style,admin_id<br>admin_name=Replace(request.Form("txt_name"), "'", "''") <br>admin_pwd=Request.Form("txt_pwd"...

临河区17291295528: 如何判断是手机用户 -
移烁丹盛: 如何判断用户是通过手机浏览还是电脑浏览网站 一般情况下是通过UserAgent来判断的,找了两个版本的,可以参考下 C#版 public static bool IsWap(){ string agent =( Request.UserAgent+"").ToLower().Trim(); if(agent==""||agent.IndexOf("...

临河区17291295528: linux系统中用bash写个脚本怎么判断开机登录的用户是管理员还是普通用户然后如果是管理员的话则在/tmp下建立一个test的目录供其他普通用户存放临时文件在写另个脚本就是在管理员退出后会自动删除
移烁丹盛: #!/bin/bash ##low profile 1.0## if [ $UID -ne 0 ] ; then echo "Sorry! you are not the root..." else mkdir -m 755 /tmp/test fi 没有调试过,思路就是这样!自己多调试一下吧!特别要注意环境变量,不是运行可能有问题!自动删除的也是类似的,就留给你自己发挥啦~~

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网