须要导入的两个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. LeetCodeOJ. Longest Common Prefix

    试题请參见: https://oj.leetcode.com/problems/longest-common-prefix/ 题目概述 Write a function to find the lon ...

  2. 开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器

    原文:[原创]开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器                本博客所有文章分类的总目录:http://www.cnblogs.com/asxiny ...

  3. 在Linux终端下使用代理访问网络(转)

    最近,需要在linux环境下使用脚本进行一些网络访问(主要是HTTP请求与文件下载),于是查阅了一些关于代理的资料. 以下是尝试的几种代理设置方法,以供参考: 一.使用wget命令进行代理访问 wge ...

  4. hdu 2243 考研绝望——复杂的文字(AC自己主动机+矩阵高速功率)

    pid=2243" target="_blank" style="">题目链接:hdu 2243 考研路茫茫--单词情结 题目大意:略. 解题思 ...

  5. SQL Server高可用——日志传送(4-3)——使用

    原文:SQL Server高可用--日志传送(4-3)--使用 顺接上一篇:SQL Server高可用--日志传送(4-2)--部署 本文为本系列最重要的一篇,讲述如何使用日志传送及一些注意事项.从上 ...

  6. bsh for android : 北京

    beanshell : bjtime.bsh source("/sdcard/com.googlecode.bshforandroid/extras/bsh/android.bsh" ...

  7. weighted Kernel k-means 加权核k均值算法理解及其实现(一)

    那就从k-means开始吧 对于机器学习的新手小白来说,k-means算法应该都会接触到吧.传统的k-means算法是一个硬聚类(因为要指定k这个参数啦)算法.这里利用百度的解释 它是数据点到原型的某 ...

  8. 3D-HEVC的TAppDecorder

    一.点击项目右键设为启动项目. 二.配置文件 右键点击属性->点配置属性的Debugging,在command arguments一栏填上编码时生成的.bit文件和希望解码后文件的命名,在wor ...

  9. jquery.validate.unobtrusive

    ASP.NET MVC Unobtrusive JavaScript 实现 onfocusout 验证, onfocusin 清除错误 在 ASP.NET MVC 中启用 Unobtrusive Ja ...

  10. Vim 命令 【转】

    高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器xq     退出记录模式@x     播放记录在x寄存器中的宏命 ...