Php 是否有适用于搜索引擎机器人的测试用例(模拟器)

Php 是否有适用于搜索引擎机器人的测试用例(模拟器),php,proxy,simulator,bots,testcase,Php,Proxy,Simulator,Bots,Testcase,我为自己编写了一个非常强大的保护类BlockIp,它可以使用ip的黑名单,可以检测奇怪的ip配置,并可以阻止代理。当它找到一个,我得到一封详细的电子邮件,关于访问者,为什么它被阻止,以及他们想尝试做什么,当然每天一次。它似乎工作得很好,因为我在过去收到过一些被这个类阻止的真实攻击。它不会阻止合法的机器人程序,但要测试检测方法是否正确并不容易 今天我收到一封来自班级的邮件,说它已经阻止了ycar10.mobile.bf1.yahoo.com,它自称是一个yahoo机器人,但背后有一个代理。我在网上

我为自己编写了一个非常强大的保护类BlockIp,它可以使用ip的黑名单,可以检测奇怪的ip配置,并可以阻止代理。当它找到一个,我得到一封详细的电子邮件,关于访问者,为什么它被阻止,以及他们想尝试做什么,当然每天一次。它似乎工作得很好,因为我在过去收到过一些被这个类阻止的真实攻击。它不会阻止合法的机器人程序,但要测试检测方法是否正确并不容易

今天我收到一封来自班级的邮件,说它已经阻止了ycar10.mobile.bf1.yahoo.com,它自称是一个yahoo机器人,但背后有一个代理。我在网上搜索是否被列入黑名单,但没有发现它被列入黑名单。所以问题是:阻止代理后的机器人是否正确使用合法的机器人代理??以下是有关bot的一些信息:

HTTP_ACCEPT = */*
HTTP_X_FORWARDED_FOR = 107.38.3.137,  98.137.88.60
HTTP_USER_AGENT = YahooCacheSystem
PATH = /sbin:/bin:/usr/sbin:/usr/bin
SERVER_SIGNATURE = 
SERVER_SOFTWARE = Apache/2.2.14
SERVER_PORT = 80
REMOTE_ADDR = 98.139.241.249
REMOTE_PORT = 53863
GATEWAY_INTERFACE = CGI/1.1
SERVER_PROTOCOL = HTTP/1.1
REQUEST_METHOD = GET
QUERY_STRING = 
REQUEST_URI = /
SCRIPT_NAME = /index.php
PHP_SELF = /index.php
REQUEST_TIME = 1330923844   
否则,是否有一个测试用例套件/模拟器能够测试合法机器人的正确行为,只允许主要的机器人,如:谷歌、雅虎、必应,以确保我使用了正确的检测方法。周围有一些模拟器,但大多数都不能正常工作,下一个问题是:我能相信它吗

*注意:正如您在上面的详细信息中所看到的,它使用的远程_端口值为53863,53863是什么类型的端口*


我希望您能理解我的问题,如果没有,请在这里写一行。

端口号53863是一个有效的端口,没有任何保留。连接到服务器的计算机可以为该特定连接选择任何端口,尽管您可能会看到端口号超过1024

你可以使用像web-sniffer.net这样的网站来识别自己是谷歌机器人。缺点是他们只是欺骗用户代理,而不是我怀疑他们首先检查robots.txt的行为


作为个人建议,请不要试图一次屏蔽多个IP并查看在线黑名单。如果你开始阻止很多IP,你可能最终会意识到你已经阻止了受信任的机器人,你将无法知道它们是哪一个。

端口号53863是一个有效的端口,没有任何保留。连接到服务器的计算机可以为该特定连接选择任何端口,尽管您可能会看到端口号超过1024

你可以使用像web-sniffer.net这样的网站来识别自己是谷歌机器人。缺点是他们只是欺骗用户代理,而不是我怀疑他们首先检查robots.txt的行为


作为个人建议,请不要试图一次屏蔽多个IP并查看在线黑名单。如果你开始阻止很多IP,你可能最终会意识到你已经阻止了受信任的机器人,你将无法知道它们是哪一个。

远程端口可以是客户端选择的任何端口。机器人可以使用代理,如果他们喜欢的话。假冒机器人可以使用任何他们喜欢的用户代理。谢谢你的评论。我知道机器人可以使用代理,但像谷歌、雅虎和必应这样的合法机器人有时会使用代理吗?否则检测方法是对的,对吗?你是如何定义合法代理的?你是只关心谷歌、雅虎和必应,还是关心他们所有人?我的观点是,在任何情况下,你都无法确定你收到的请求。所有的信息都可能被欺骗。是的,我只关心合法的搜索引擎谷歌、雅虎和必应。他们是否使用代理,否则我可以阻止他们,如果它是一个代理,当代理识别自己是合法的搜索引擎。本文可能会有所帮助,上面的bot在尝试索引之前是否向robots.txt发出了请求?如果不是,那么它很可能是一个用户代理spoofRemote端口可以是客户端选择的任何东西。机器人可以使用代理,如果他们喜欢的话。假冒机器人可以使用任何他们喜欢的用户代理。谢谢你的评论。我知道机器人可以使用代理,但像谷歌、雅虎和必应这样的合法机器人有时会使用代理吗?否则检测方法是对的,对吗?你是如何定义合法代理的?你是只关心谷歌、雅虎和必应,还是关心他们所有人?我的观点是,在任何情况下,你都无法确定你收到的请求。所有的信息都可能被欺骗。是的,我只关心合法的搜索引擎谷歌、雅虎和必应。他们是否使用代理,否则我可以阻止他们,如果它是一个代理,当代理识别自己是合法的搜索引擎。本文可能会有所帮助,上面的bot在尝试索引之前是否向robots.txt发出了请求?如果不是,那么很可能是用户代理欺骗