须要导入的两个jar包

实现的javabean

<span style="font-size:18px;">package com.jx.po;

public class ProxyPo {
private String id;
private String ip;
private String port;
private String area;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
public ProxyPo(String id, String ip, String port, String area) {
super();
this.id = id;
this.ip = ip;
this.port = port;
this.area = area;
} }</span>

工具类

<span style="font-size:18px;">package com.jx.util;

public class MathRodom {
public static int toRodom(int Max, int min) {
int i = (int) (min + Math.random() * (Max - min + 1));
return i;
}
}</span>

ProxyIp.class

<span style="font-size:18px;">package com.jx.util;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set; import org.apache.log4j.Logger;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.parser.Parser;
import org.jsoup.parser.XmlTreeBuilder; import com.jlzx.po.ProxyPo;
import com.sun.jndi.toolkit.ctx.Continuation; public class ProxyIp {
// private static final Logger log = Logger.getLogger(ProxyIp.class);
// private static final String Continu = null; //为了突破IP限制须要动态替换代理ip。 public static void setProxy() {
// String str=""; System.setProperty("http.maxRedirects", "50");
System.getProperties().setProperty("proxySet", "true"); // 假设不设置,仅仅要代理IP和代理端口正确,此项不设置也能够
ProxyPo p1 = new ProxyPo("1", "41.231.53.41", "3128", "突尼斯");
ProxyPo p2 = new ProxyPo("2", "114.112.91.135", "3128", "北京市");
ProxyPo p3 = new ProxyPo("3", "111.161.126.83", "8080", "天津市 联通");
ProxyPo p4 = new ProxyPo("4", "111.161.126.84", "80", "天津市 联通");
ProxyPo p5 = new ProxyPo("5", "111.161.126.89", "8080", "天津市 联通");
ProxyPo p6 = new ProxyPo("6", "111.161.126.85", "80", "天津市 ");
ProxyPo p7 = new ProxyPo("7", "111.161.126.92", "8080", "突尼斯");
ProxyPo p8 = new ProxyPo("8", "183.224.1.30", "80", "昆明");
ProxyPo p9 = new ProxyPo("9", "111.161.126.88", "8080", "天津");
ProxyPo p10 = new ProxyPo("10", "14.18.16.67", "80", "广州");
ProxyPo p11 = new ProxyPo("11", "222.246.232.55", "80", "湖南");
ProxyPo p12 = new ProxyPo("12", "220.181.32.106", "80", "北京");
ProxyPo p13 = new ProxyPo("13", "202.108.23.247", "80", "北京"); ProxyPo p14 = new ProxyPo("14", "106.3.40.249", "8081", "北京");
ProxyPo p15 = new ProxyPo("15", "58.56.124.192", "80", "济南");
ProxyPo p16 = new ProxyPo("16", "223.202.3.49", "8080", "北京");
ProxyPo p17 = new ProxyPo("17", "218.4.236.117", "80", "江苏");
ProxyPo p18 = new ProxyPo("18", "120.210.202.4", "80", "安徽");
ProxyPo p19 = new ProxyPo("19", "121.10.252.139", "3128", "广东省肇庆市");
ProxyPo p20 = new ProxyPo("20", "60.250.81.118", "8080", "台湾");
ProxyPo p21 = new ProxyPo("21", "113.57.252.107", "80", "武汉");
ProxyPo p22 = new ProxyPo("22", "113.214.13.1", "8000", "浙江省杭州市 华数传媒");
ProxyPo p23 = new ProxyPo("23", "115.29.247.115", "8888", "北京市 万网IDC机房");
ProxyPo p24 = new ProxyPo("24", "202.106.169.228", "8080", "北京");
ProxyPo p25 = new ProxyPo("25", "122.96.59.106", "81", "南京");
ProxyPo p26 = new ProxyPo("26", "182.92.77.169", "3128",
"浙江省杭州市 阿里巴巴网络有限公司");
ProxyPo p27 = new ProxyPo("27", "113.214.13.1", "8000", "浙江省杭州市 华数传媒");
ProxyPo p28 = new ProxyPo("28", "122.96.59.106", "81", "南京");
ProxyPo p29 = new ProxyPo("29", "117.21.192.9", "80", "江西省 电信");
ProxyPo p30 = new ProxyPo("30", "113.57.230.49", "81", "湖北省武汉市 联通");
ProxyPo p31 = new ProxyPo("31", "223.68.6.10", "8000", "江苏省宿迁市 移动");
ProxyPo p32 = new ProxyPo("32", "115.28.23.36", "3128", "北京");
ProxyPo p33 = new ProxyPo("33", "122.96.59.106", "81", "江苏省南京市 联通");
ProxyPo p34 = new ProxyPo("34", "202.108.23.247", "80", "北京");
ProxyPo p35 = new ProxyPo("35", "124.207.175.91", "8080", "北京");
ProxyPo p36 = new ProxyPo("36", "120.192.200.72", "80", "西安");
ProxyPo p37 = new ProxyPo("37", "120.237.91.242", "3128", "北京");
ProxyPo p38 = new ProxyPo("38", "125.39.66.76", "80", "北京");
List<ProxyPo> list = new ArrayList(); list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
list.add(p6);
list.add(p7);
list.add(p7);
list.add(p8);
list.add(p9);
list.add(p10);
list.add(p11);
list.add(p11);
list.add(p12);
list.add(p13);
list.add(p14);
list.add(p15);
list.add(p16);
list.add(p17);
list.add(p18);
list.add(p19);
list.add(p20);
list.add(p21);
list.add(p22);
list.add(p23);
list.add(p24);
list.add(p25);
list.add(p26);
list.add(p27);
list.add(p28);
list.add(p29);
list.add(p30);
list.add(p31);
list.add(p32);
list.add(p33);
list.add(p34);
list.add(p35);
list.add(p36);
list.add(p37);
list.add(p38);
int i = MathRodom.toRodom(38, 1);
System.getProperties().setProperty("http.proxyHost",
list.get(i).getIp());
System.getProperties().setProperty("http.proxyPort",
list.get(i).getPort());
System.out.println("代理serverIP::" + list.get(i).getIp() + "端口::"
+ list.get(i).getPort());
// 确定代理是否设置成功 } public static Document getHtml(String url1) throws Exception {
// TODO Auto-generated method stub
Document doc = Jsoup.connect(url1).get();
return doc;
} private static Document getHtmlStr(String address) throws Exception,
RuntimeException {
StringBuffer html = new StringBuffer();
String result = null; URL url = new URL(address); URLConnection conn = (URLConnection) url.openConnection();
conn.setConnectTimeout(1000 * 40);
conn.setRequestProperty("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0");
BufferedInputStream in = new BufferedInputStream(conn.getInputStream()); String inputLine;
byte[] buf = new byte[4096];
int bytesRead = 0;
while (bytesRead >= 0) {
inputLine = new String(buf, 0, bytesRead, "ISO-8859-1");
html.append(inputLine);
bytesRead = in.read(buf);
inputLine = null;
}
result = new String(html.toString().trim().getBytes("ISO-8859-1"),
"utf-8").toLowerCase();
buf = null;
Document doc = Jsoup
.parse(result, "", new Parser(new XmlTreeBuilder()));
// System.out.println(result);
return doc;
} public static void main(String[] args) throws Exception {
// Document htmlStr =
// ProxyIp.getHtmlStr("http://hehongwei44.iteye.com/blog/1494999");
// System.out.println("==="+htmlStr);
ProxyIp.setProxy();
System.out.println("==============");
}
}</span>

执行结果:

达到了代理的功能,自己的IP是 119.6.69.202 ,如今訪问的IP是183.224.1.30说明成功了。

使用动态IP须要注意的地方:

1、假设动态IP错误,会以本机网络IP訪问。假设port错误,会报错。

2、代理IP哪里来呢? 我是从优易ip代理软件免费IP里找的,然后存到自己本机。假设对方封了我如今的IP,那么我就更换IP。

突破IP限制动态替换代理ip。的更多相关文章

  1. python检验代理ip是否可用、代理ip检验

    python检验代理ip是否可用.代理ip检验 安装相关模块: pip install requests 验证代理IP是否可用脚本: import random import telnetlib im ...

  2. PHP获取用户的真实IP地址,非代理IP

    function getClientIP(){ global $ip; if(getenv("HTTP_CLIENT_IP")){ $ip = getenv("HTTP_ ...

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

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

  4. node.js 爬虫动态代理ip

    参考文章: https://andyliwr.github.io/2017/12/05/nodejs_spider_ip/ https://segmentfault.com/q/10100000081 ...

  5. scrapy-redis+selenium+webdriver解决动态代理ip和user-agent的问题(全网唯一完整代码解决方案)

    问题描述:在爬取一些反爬机制做的比较好的网站时,经常会遇见一个问题就网站代码是通过js写的,这种就无法直接使用一般的爬虫工具爬取,这种情况一般有两种解决方案 第一种:把js代码转为html代码,然后再 ...

  6. go colly proxy 代理ip 动态 ip

    package main import ( "fmt" "github.com/gocolly/colly" "github.com/gocolly/ ...

  7. 使用TaskManager爬取2万条代理IP实现自动投票功能

    话说某天心血来潮想到一个问题,朋友圈里面经常有人发投票链接,让帮忙给XX投票,以前呢会很自觉打开链接帮忙投一票.可是这种事做多了就会考虑能不能使用工具来进行投票呢,身为一名程序猿决定研究解决这个问题. ...

  8. 通过爬虫代理IP快速增加博客阅读量——亲测CSDN有效!

    写在前面 题目所说的并不是目的,主要是为了更详细的了解网站的反爬机制,如果真的想要提高博客的阅读量,优质的内容必不可少. 了解网站的反爬机制 一般网站从以下几个方面反爬虫: 1. 通过Headers反 ...

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

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

随机推荐

  1. C++基于该模型模板包括节目外实例

    一个."经典模式"失败 我们学过C++的人都知道.在C++中组织代码的经典模型是:将函数或类的声明和定义部分分开在不同的文件之中   , 即一般将声明放在一个.h的头文件里而定义在 ...

  2. groovy : poi 导出 Excel

    參考 poi-3.10-FINAL/docs/spreadsheet/quick-guide.html write_xls.groovy 代码例如以下 package xls; import java ...

  3. ASP.NET分页正品—分页真

     承接上篇博文<ASP.NET真假分页-假分页>:http://blog.csdn.net/u010773667/article/details/38845009,继续解说ASP.NE ...

  4. 【IPC第二个进程间通信】管道Pipe

    IPC进程间通信+管道Pipe                IPC(Inter-Process Communication,进程间通信).         管道用于进程间共享数据,事实上质是共享内存 ...

  5. 改写String类别

    主要4默认功能重写: 代码: #include <iostream> using namespace std; class Cstring{ private : char * data; ...

  6. 关于sql中去换行符的问题

    今天要用bootstrap开发一个网页,要使用到JSON,但是JSON的格式不正确,然后在http://www.bejson.com/[Be JSON]中测试了一下JSON. 发现JSON中多了一个换 ...

  7. angularJS socket

    工程Controller加载文件Service层socket.js.controller所在页面时连接socket(也可一进入项目就连接,看需求).细节还需继续优化,写下来以防忘了~ Service层 ...

  8. [2011山东ACM省赛] Identifiers(模拟)

    Identifiers Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述  Identifier is an important ...

  9. CentOS7 安装spark集群

    Spark版本 1.6.0 Scala版本 2.11.7 Zookeeper版本 3.4.7 配置虚拟机 3台虚拟机,sm,sd1,sd2 1. 关闭防火墙 systemctl stop firewa ...

  10. android模拟器与PC的端口映射(转)

    阅读目录 一.概述 二.实现步骤 回到顶部 一.概述 Android系统为实现通信将PC电脑IP设置为10.0.2.2,自身设置为127.0.0.1,而PC并没有为Android模拟器系统指定IP,所 ...