突破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("代理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。的更多相关文章
- python检验代理ip是否可用、代理ip检验
python检验代理ip是否可用.代理ip检验 安装相关模块: pip install requests 验证代理IP是否可用脚本: import random import telnetlib im ...
- PHP获取用户的真实IP地址,非代理IP
function getClientIP(){ global $ip; if(getenv("HTTP_CLIENT_IP")){ $ip = getenv("HTTP_ ...
- java模拟http请求(代理ip)
java实现动态切换上网IP (ADSL拨号上网) java动态设置IP java模拟http的Get/Post请求 自动生成IP模拟POST访问后端程序 JAVA 动态替换代理IP并模拟POST
- node.js 爬虫动态代理ip
参考文章: https://andyliwr.github.io/2017/12/05/nodejs_spider_ip/ https://segmentfault.com/q/10100000081 ...
- scrapy-redis+selenium+webdriver解决动态代理ip和user-agent的问题(全网唯一完整代码解决方案)
问题描述:在爬取一些反爬机制做的比较好的网站时,经常会遇见一个问题就网站代码是通过js写的,这种就无法直接使用一般的爬虫工具爬取,这种情况一般有两种解决方案 第一种:把js代码转为html代码,然后再 ...
- go colly proxy 代理ip 动态 ip
package main import ( "fmt" "github.com/gocolly/colly" "github.com/gocolly/ ...
- 使用TaskManager爬取2万条代理IP实现自动投票功能
话说某天心血来潮想到一个问题,朋友圈里面经常有人发投票链接,让帮忙给XX投票,以前呢会很自觉打开链接帮忙投一票.可是这种事做多了就会考虑能不能使用工具来进行投票呢,身为一名程序猿决定研究解决这个问题. ...
- 通过爬虫代理IP快速增加博客阅读量——亲测CSDN有效!
写在前面 题目所说的并不是目的,主要是为了更详细的了解网站的反爬机制,如果真的想要提高博客的阅读量,优质的内容必不可少. 了解网站的反爬机制 一般网站从以下几个方面反爬虫: 1. 通过Headers反 ...
- python代理池的构建5——对mongodb数据库里面代理ip检查
上一篇博客地址:python代理池的构建4--mongdb数据库的增删改查 一.对数据库里面代理ip检查(proxy_test.py) #-*-coding:utf-8-*- ''' 目的:检查代理I ...
随机推荐
- HDU 2012 素性
素性 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- Adb shell得到root才干
于Adb shell我们希望用一些文件系统文件夹时,经常有在没有痛苦Root才干,系统会提示su: Permission Denied. su不是每个手机有一个.能不能在这里下载: http://do ...
- 【剑指offer】面试题39:深度二叉树
def TreeDepth1(root): if None == root: return 0 if None == root.left and None == root.right: return ...
- 【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象
为何将单例模式移除 在Cocos2d-JS v3.0之前.全部API差点儿都是从Cocos2d-x中移植过来的,这是Cocos2d生态圈统一性的重要一环.可惜的是,这样的统一性也在非常大程度上限制了C ...
- 参加persist.sys物业写权限的方法
1.于AndroidManifest.xml manifest添加属性android:sharedUserId="android.uid.system" 2.假设AndroidMa ...
- MyEclipse—怎样在MyEclipse中创建servlet3.0
servlet3.0随着Java EE6规范一起公布,那么怎样在MyEclipse中创建3.0版的servlet呢? 1.启动MyEclipse.获得下图: 2.点击上图"File" ...
- SGU 200. Cracking RSA(高斯消元+高精度)
标题效果:鉴于m整数,之前存在的所有因素t素数.问:有多少子集.他们的产品是数量的平方. 解题思路: 全然平方数就是要求每一个质因子的指数是偶数次. 对每一个质因子建立一个方程. 变成模2的线性方程组 ...
- 定向爬虫之爬一爬各个学校新闻的认识(【1】对Url的认识)
昨天早上,我习惯性的打开博客园,看一看别人的写的博客.突然想起,自己好像没有写过什么博客,所以就心血来潮,把我现在做得事情写出来, 这也是对我目前的学习的一种总结.望大神指点.... 对于一间学校的新 ...
- zepto.js 源码注释备份
/* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */ ;(funct ...
- BZOJ 3589 动态树 树链拆分+纳入和排除定理
标题效果:鉴于一棵树.每个节点有一个右值,所有节点正确启动值他们是0.有两种操作模式,0 x y代表x右所有点的子树的根值添加y. 1 k a1 b1 a2 b2 --ak bk代表质疑. 共同拥有者 ...