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. sh脚本变量赋值时同时执行命令时的环境问题

    在v2ex看到一个问题: 允许在一个命令之前立即发生一个或多个变量赋值,这些赋值为跟随着的命令更改环境变量,这个赋值的影响是暂时的. 那为什么: int=100 int=10 echo $(($int ...

  2. 【linux高级程序设计】(第十三章)Linux Socket网络编程基础 2

    BSD Socket网络编程API 创建socket对象 int socket (int __domain, int __type, int __protocol) :成功返回socket文件描述符, ...

  3. Appium+python自动化17-启动iOS模拟器APP源码案例【转载】

    前言 上一篇已经可以启动iOS模拟器上的safari浏览器了,启动app比启动浏览器要复杂一点,本篇以github上的源码为案例详细介绍如何启动iOS模拟器的app 一.clone源码 1.githu ...

  4. Manacher【p4555】 [国家集训队]最长双回文串

    题目描述 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为abc,逆序为cba,不相同). 输入长度为 n 的串 S ,求 S 的最长双回文子串 T ,即可 ...

  5. teamviewer13报错

    用自己的笔记本电脑远程桌面AGV电脑在终端运行teamviewer报错如下: Init...CheckCPU: SSE2 support: yesChecking setup...Launching ...

  6. 三. Java类与对象9. 源文件的声明规则

    当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则: 一个源文件中只能有一个public类. 一个源文件可以有多个非public类. 源文件的名称应该和pu ...

  7. SQL获取当月天数的几种方法

    原文:SQL获取当月天数的几种方法 日期直接减去int类型的数字 等于 DATEADD(DAY,- 数字,日期) 下面三种方法: 1,日期加一个月减去当前天数,相当于这个月最后一天的日期.然后获取天数 ...

  8. Android并发编程

    Android的并发编程,即多线程开发,而Android的多线程开发模型也是源于Java中的多线程模型.所以本篇也会先讲一些Java中的多线程理念,再讲解具体涉及的类,最后深入Android中的并发场 ...

  9. C++ 模板应用 实现一个Queue 队列

    #include<iostream> using namespace std; template <typename T> class Queue { public: Queu ...

  10. shell中set命令

    set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值.set命令不能够定义新的shell变量.如果要定义新的变量,可以使用declare命令以变量名=值的格式进行定 ...