我这里提供2个方法都可以实现:第一个是createIPAddress()和convertStreamToString()
import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/**<br> * 批量代理IP有效检测<br> *<br> * @param IP<br> * @param post<br> */
public static void createIPAddress(String ip,int port) {
URL url = null;
try {
url = new URL("http://www.baidu.com");
} catch (MalformedURLException e) {
System.out.println("url invalidate");
}
InetSocketAddress addr = null;
addr = new InetSocketAddress(ip, port);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // http proxy
InputStream in = null;
try {
URLConnection conn = url.openConnection(proxy);
conn.setConnectTimeout(1000);
in = conn.getInputStream();
} catch (Exception e) {
System.out.println("ip " + ip + " is not aviable");//异常IP
}
String s = convertStreamToString(in);
System.out.println(s);
// System.out.println(s);
if (s.indexOf("baidu") > 0) {//有效IP
System.out.println(ip + ":"+port+ " is ok");
}
}
public static String convertStreamToString(InputStream is) {
if (is == null)
return "";
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "/n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}

第二个方法是checkProxyIp()
/**
* 批量代理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) {
System.out.println("ip " + proxyHost + " is not aviable");
}
if(statusCode>0){
System.out.format("%s:%s-->%sn", proxyHost, proxyPort,statusCode);
}
}
}
相关文章内容简介
1 免费代理IP能用于爬虫吗
免费代理IP能用于爬虫吗?免费代理IP就是不需要花钱,在网络上可以直接提取,然后用来替换IP。并不是所有项目都能用免费代理IP的,例如爬虫就不可以。 免费代理IP的来源比较杂,很多没有用,使用时间短,匿名程度也参差不齐,其中有一些是高度匿名的,但数量有限,也很难挑选。而爬虫工作需要的IP,要求比较高,因为爬虫IP一旦质量不高就会被对方网站发现,被禁止抓取数据,无法完成工作。所以,免费代理IP是不适合爬虫的。但如果免费代理IP的匿名程度够的话,使用效率低,也是符合使用需求的。 爬虫大家都知道,是采集数据的方式。通过采集来的数据分析,可以获取有价值的信息。而代理IP是换IP最方便的工具,爬虫工作是要用代理IP的。 爬虫对被爬的网站来说是毫无利益的,反而会影响到服务器的工作,所以现在都设有反爬程序,IP限制是最基本的。爬虫工作的时候,如果速度快,用同一个IP会有访问的问题,这时网络就会有验证或者直接封锁IP,给爬虫工作带来了很大的困难。 ... [阅读全文]
2 发帖用代理IP有什么好处?
发帖用代理IP有什么好处?发帖是网络营销的主要途径,在发帖的时候,很多时候都要用到代理IP,这并不奇怪,代理IP给网络营销人员带来了很大的便利。那么,发帖用代理IP有什么好处? 贴吧大家都不陌生,很多人在贴吧交流,一般同一个IP只能发布有限的帖子,评论也是有限制的。如果想大量发帖,就需要用代理IP来解决了。有很多热帖有的是真实评论,有的可能需要代理IP来帮忙,用代理IP去访问网站,用户不会被网站监视限制,或者被封锁了。 随着网络的发展,网络营销是很多公司必须要做的,其中网络影响最重要的途径就是发帖。很多发帖的工作人员都在使用代理IP,但还有很多人并不了解。那么,营销发帖一定要用代理IP吗? 例如贴吧、微博等平台,这些平台发帖可以与其他网友进行交流,起到宣传的作用。但一个IP发帖的数量是有限的,如果想大量发帖,就需要代理IP的帮助。更换IP后,就可以伪装成一个全新的用户,自然不会被平台限制。还有网络营销最常见的问答方式,也需要更换IP后进行自问... [阅读全文]
推荐阅读
14
2020-04
http代理隐匿真实IP
不清楚大伙平常在网上的情况下,有木有使用过IP代理。很有可能平常大伙在网上的情况下没有怎么对自身的IP注意,实际上IP便是等同于我们在互联网中的象征,它会纪录着大家的每一个互联网
19
2020-01
代理服务器ISP限制内工作
代理数据的加入提供了进一步的信息来分析漏洞的用户行为倾向。您可以通过技术情报找到此可疑活动的警报,以探索和管理事件。这一切都是可以观察到的。
26
2020-10
本地网络会不会影响代理ip的使用?
代理ip在什么环境下才能不影响使用,大家都知道网络没有网是寸步难行,代理ip也是一样存在这个问题,那么本地网络不稳定是否会影响代理ip的使用?
10
2020-12
网络工作者必备代理ip软件吗?
网络的出现把你、我、他的距离都变成了“零距离”,我们可以在网络中聊天、购物、玩游戏听歌看视频等、方便了我们的工作和生活,带来了不一样的乐趣,也带来了更多的机遇,而对于互联
03
2020-02
怎么使用批处理bat设置动态IP地址?
有些时候由于工作或生活需要,我们需要将计算机的IP地址在动态与静态之间来回切换,上一篇文章我们讲解了《怎么使用批处理bat设置静态IP地址?》,接来下让我们使用批处理bat设置动态IP地
14
2020-10
探索代理ip如何爬取数据,了解什么是云连大数据杀熟?
探索 代理ip 如何爬取数据!也许你知道“杀生”意味着什么?大数据杀伤性指的是同一种商品或服务,老顾客看到价格反而会比新顾客贵很多。
热门文章
因为专业! 所以简单! 产品至上,价格实惠 是我们服务追求的宗旨
免费试用