突破IP限制动态替换代理ip。

需要导入的两个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("代理服务器IP::" + 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访问。如果端口错误,会报错。
2、代理IP哪里来呢? 我是从优易ip代理软件免费IP里找的,然后存到自己本机。如果对方封了我现在的IP,那么我就更换IP。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值