如何判断一个ip是否为代理服务器

展开全部1、确认反爬虫策略是否正确这是一个更大的问题。显然,所有的设置都是正确的,代码也是一样的,可以是访问失败,也可以是成功率很低,有些以前访问是成功的,突然有一天访问完全失败或失败率很高。很多朋友的第一个反应是代理IP质量不够,用http代理ip。首先是用户电脑中安装了第三方查询软件或插件,导致非人工的、高频率的访问系统受到限制;第二,在用户计算机所在的公共网络IP地址上存在其他计算机访问公共网络IP地址的行为,多次触发禁止访问规则,导致公共网络IP地址被禁止访问。2、确认API提取的连接是否正常能否正常提取代理IP,许多软件的第一步设定错误,完全不能提取IP,或者API的返回形式不符合要求,因此,如何判断API是否提取了链接呢?其实很简单。把API提取链接复制到浏览器栏回车打开,就能看到结果:1、无法打开网页,API出现问题;2、正常返回IP,检查格式是否符合要求;3、其它原因导致异常返回,如缺少参数,或提取过快等。展开全部。但是http协议里面有些规定。。如何判断客户端使用了代理服务器及其匿名级别 ?要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断,具体点就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器。匿名级别可以参考下表来判断。public String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }