java实现代理ip有效检测,依赖Apache的HttpClient
 
正式版:

      /**
       * 批量代理IP有效检测
       *
       * @param proxyIpMap
       * @param reqUrl
       */
      public static void checkProxyIp(Map<String, Integer> proxyIpMap, String reqUrl) {
 
            for (String proxyHost : proxyIpMap.keySet()) {
                  Integer proxyPort = proxyIpMap.get(proxyHost);
 
                  int statusCode = 0;
                  try {
                        HttpClient httpClient = new HttpClient();
                        httpClient.getHostConfiguration().setProxy(proxyHost, proxyPort);
 
                        // 连接超时时间(默认10秒 10000ms) 单位毫秒(ms)
                        int connectionTimeout = 10000;
                        // 读取数据超时时间(默认30秒 30000ms) 单位毫秒(ms)
                        int soTimeout = 30000;
                        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(connectionTimeout);
                        httpClient.getHttpConnectionManager().getParams().setSoTimeout(soTimeout);
 
                        HttpMethod method = new GetMethod(reqUrl);
 
                        statusCode = httpClient.executeMethod(method);
                  } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                  }
                  System.out.format("%s:%s-->%s\n", proxyHost, proxyPort, statusCode);
            }
      }
 
      /**
       * 代理IP有效检测
       *
       * @param proxyIp
       * @param proxyPort
       * @param reqUrl
       */
      public static void checkProxyIp(String proxyIp, int proxyPort, String reqUrl) {
            Map<String, Integer> proxyIpMap = new HashMap<String, Integer>();
            proxyIpMap.put(proxyIp, proxyPort);
            checkProxyIp(proxyIpMap, reqUrl);
      }
      
      public static void main(String[] args) {
            
            Map<String, Integer> proxyIpMap = new HashMap<String, Integer>();
            proxyIpMap.put("114.80.136.112", 7780);
            proxyIpMap.put("114.80.136.166", 7780);
            proxyIpMap.put("114.80.136.167", 7780);
            proxyIpMap.put("114.80.136.168", 7780);
            proxyIpMap.put("114.80.136.169", 7780);
            proxyIpMap.put("114.80.136.170", 7780);
            proxyIpMap.put("114.80.136.171", 7780);
            proxyIpMap.put("123.129.207.102", 7780);
            proxyIpMap.put("123.129.207.100", 7780);
            proxyIpMap.put("123.129.207.103", 7780);
            proxyIpMap.put("123.129.207.104", 7780);
            proxyIpMap.put("123.129.207.105", 7780);
            proxyIpMap.put("123.129.207.108", 7780);
            proxyIpMap.put("114.80.136.164", 7780);
            proxyIpMap.put("123.129.207.107", 7780);
            proxyIpMap.put("180.153.251.3", 7780);
            proxyIpMap.put("180.153.251.4", 7780);
            proxyIpMap.put("180.153.251.5", 7780);
            proxyIpMap.put("180.153.251.6", 7780);
            proxyIpMap.put("180.153.251.7", 7780);
            proxyIpMap.put("180.153.251.8", 7780);
            proxyIpMap.put("180.153.251.9", 7780);
            proxyIpMap.put("180.153.251.10", 7780);
            proxyIpMap.put("180.153.251.11", 7780);
            proxyIpMap.put("180.153.251.12", 7780);
            proxyIpMap.put("180.153.251.13", 7780);
            proxyIpMap.put("180.153.251.14", 7780);
            proxyIpMap.put("180.153.251.15", 7780);
            proxyIpMap.put("180.153.251.16", 7780);
            proxyIpMap.put("180.153.251.2", 7780);
            checkProxyIp(proxyIpMap, "http://t.sohu.com/new_index");
 
      }
 

java代理ip有效检测的更多相关文章

  1. python爬虫之反爬虫(随机user-agent,获取代理ip,检测代理ip可用性)

    python爬虫之反爬虫(随机user-agent,获取代理ip,检测代理ip可用性) 目录 随机User-Agent 获取代理ip 检测代理ip可用性 随机User-Agent fake_usera ...

  2. springboot实现java代理IP池 Proxy Pool,提供可用率达到95%以上的代理IP

    一.背景 前段时间,写java爬虫来爬网易云音乐的评论.不料,爬了一段时间后ip被封禁了.由此,想到了使用ip代理,但是找了很多的ip代理网站,很少有可以用的代理ip.于是,抱着边学习的心态,自己开发 ...

  3. 对代理IP进行检测是否可用

    第一种方法是使用telnetlib import telnetlib import requests from lxml import etree #解析此url页面的IP url = 'http:/ ...

  4. java 检测代理IP是否准确

    我这里提供2个方法都可以实现:第一个是createIPAddress()和convertStreamToString() import java.io.IOException; import java ...

  5. Java 验证代理ip

    原文地址:http://www.cnblogs.com/junrong624/p/5416503.html 1 import java.io.IOException; import java.io.I ...

  6. python代理池的构建5——对mongodb数据库里面代理ip检查

    上一篇博客地址:python代理池的构建4--mongdb数据库的增删改查 一.对数据库里面代理ip检查(proxy_test.py) #-*-coding:utf-8-*- ''' 目的:检查代理I ...

  7. Java实现Ip代理池

    设置Ip代理很多时候都会有用到,尤其是在写爬虫相关项目的时候.虽然自己目前没有接触这种需求,但由于最近比较闲,就写着当作练习吧 爬取代理IP 爬取 关于爬取代理IP,国内首先想到的网站当然是 西刺代理 ...

  8. [爬虫进阶]使用Jsoup取代你的一切网络请求方法(java,post,get,代理IP)

    [爬虫进阶]使用Jsoup取代你的一切网络请求方法(java,post,get,代理IP) 原文链接:https://www.cnblogs.com/blog5277/p/9334560.html 原 ...

  9. java模拟http请求(代理ip)

    java实现动态切换上网IP (ADSL拨号上网) java动态设置IP java模拟http的Get/Post请求 自动生成IP模拟POST访问后端程序 JAVA 动态替换代理IP并模拟POST

随机推荐

  1. ubuntu软件包管理

    ubuntu安装好了后首先要会下载和管理系统的软件包:ubuntu的软件管理方式是apt-get 安装软件包apt-get harvey@ubuntu:/var/cache/apt$ which ap ...

  2. Python基础-列表、元祖

    1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ['Alex',"Tenglan",'Eric ...

  3. ./configure时候遇到的问题 Cannot find install-sh, install.sh, or shtool in ac-aux

    https://blog.csdn.net/anloan/article/details/17268997

  4. AC日记——[国家集训队2011]旅游(宋方睿) cogs 1867

    [国家集训队2011]旅游(宋方睿) 思路: 树链剖分,边权转点权: 线段树维护三个东西,sum,max,min: 当一个区间变成相反数时,sum=-sum,max=-min,min=-max: 来, ...

  5. JDK7集合框架源码阅读(七) ArrayDeque

    基于版本jdk1.7.0_80 java.util.ArrayDeque 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to li ...

  6. Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[2]

    初级篇 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accidental Variable Shado ...

  7. 分金币 Uva 11300

    题意 给定N个人成环状坐,每个人初始分配Ai的金币,金币总数可以被N整除,每个人可以给左右相邻的人一定数量的金币使得最终每个人的金币数量相同,求转移数量最小的方案所转移的总金币数量. N<=10 ...

  8. CENTOS设置MYSQL字符集

    CENTOS设置MYSQL字符集 show variables like 'character_set%'; vim etc/my.cnf 修改成如下: [client] port=3306 sock ...

  9. JMeter之Ramp-up Period(in seconds)说明(可同时并发)(转载)

    Ramp-up Period(in seconds) [1]决定多长时间启动所有线程.如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行. ...

  10. Oracle truncate、 delete、 drop区别

    相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. t ...