到目前为止,我能够通过将这些字符串与已知的用户代理匹配来从用户代理字符串列表中检测到机器人,但我想知道还有哪些其他方法可以使用 php 来执行此操作,因为我检索到的机器人比预期的要少这种方法。
我也在寻找如何检测浏览器或机器人是否在使用用户代理字符串欺骗另一个浏览器。
如有任何建议,我们将不胜感激。
编辑:这必须使用包含以下行的日志文件来完成:
129.173.129.168 - - [11/Oct/2011:00:00:05 -0300] "GET/cams/uni_ave2.jpg?time=1318302291289 HTTP/1.1"200 20240 "http://faculty.dentistry. dal.ca/loanertracker/webcam.html""Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23"
这意味着除了访问时间之外,我无法检查用户行为。
最佳答案
除了过滤用户代理字符串中的关键字外,我还幸运地在所有页面上放置了一个隐藏的蜜 jar 链接:
<a style="display:none" href="autocatch.php">A</a>
然后在“autocatch.php”中将 session (或 IP 地址)记录为机器人。这个链接对用户是不可见的,但它的隐藏特性希望机器人不会意识到。取出样式属性并将其放入 CSS 文件中可能会有更多帮助。
关于php - 如何从 php 中的用户代理字符串检测浏览器欺骗和机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372799/