【问题标题】:differentiating bot and users and insert real human ip to database区分机器人和用户并将真实的人类IP插入数据库
【发布时间】:2013-12-08 22:30:12
【问题描述】:

我正在通过 php 和 mysql 跟踪我网站上的用户,但机器人正在制造问题。我的网站上提供的用户机器人不止于此,我只想输入真实用户的 IP 地址而不是机器人的 IP 地址。我知道很少有从 66.249 开始的谷歌 ip 地址,比如 bing 的 ip 地址也从类似的东西开始。但是对于其他几个搜索引擎机器人,如 yandex baidu 和其他一些搜索引擎机器人,我无法预测 IP 地址。我曾想过使用 if else 语句来做到这一点。例如如果

  $ip=='66.249'

  {do nothing}


     else {
   insert into database

    } 

但我在想是否有可以轻松识别机器人的东西,我可以使用类似的东西

if  

 useragent=='bot'

     {
     do nothing 
        } 

      else 

       {
      insert into database
        }

请提出任何建议

【问题讨论】:

    标签: php apache user-agent bots


    【解决方案1】:

    您应该在 php 中检查 $_SERVER['HTTP_USER_AGENT'] 。人类将拥有 Mozilla 等价值观。

    【讨论】:

    • 如何与bot区分。
    • 例如 google 将拥有类似 Googlebot/1.0 的值,MSN 将拥有类似 Msnbot 的值
    • 我同意,但我想区分所有机器人与人类。否则我可以通过指定谷歌机器人 IP 地址来做同样的事情,但在这种情况下,我应该知道所有可用的机器人,所以我更喜欢这个。或者如果 $_SERVER['HTTP_USER_AGENT']=%bot% {do nothing} 我可以做这样的事情,但我担心它会减慢进程并在服务器上创建负载?我不认为它会在服务器上产生负载,因为 php 会非常快,请告知
    • 您必须检查 $_SERVER['HTTP_USER_AGENT'] 的结果是否与 Mozilla 、Konqueror 等模式匹配。您可以通过 google 中的简单搜索获得有效用户代理列表
    • 我认为我的方式更好。如果它只是忽略其他插入数据库,我将检查单词机器人
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2014-03-24
    • 2019-09-04
    • 2012-01-25
    • 2018-06-08
    相关资源
    最近更新 更多