我有一些networking爬虫,一段时间后,一个特定的网站似乎暂时阻止了stream量。 即使所有的客户端都具有相同的外部IP地址(他们通过同一个网关访问互联网),它也会阻止来自我的networking的特定机器。 也就是说,这不是一个简单的IP地址块。
这怎么可能发生? 什么样的规则可以做(在networking服务器或防火墙等)来获得这种行为? 规则可以基于MAC地址还是其他机器特定的数据?
这也许有点太明显,但是阻塞行为必须基于远程服务器所知道的信息。 这将包括:
源IP地址
源TCP端口应该是短暂的,并且在每个请求上都会改变
客户端的IP栈可能有一些被动的指纹,这是可能的
请求的资源的URL
HTTP请求标头的内容,包括Cookie,User-Agentstring和指纹“Accept:”标头
如果你将JavaScript引入混合,那么可以执行的客户端的各种指纹。
你提到MAC地址,值得指出的是MAC不会离开本地networking。 边缘路由器是唯一可以接收客户端计算机MAC地址的设备。
我倾向于怀疑他们正在使用用户代理string,也许,指纹的“接受:”标题。