您的位置:首页 >新闻资讯

如何通过java测试代理ip

来源:本站 作者:admin 时间:2019-05-31 17:31:21

在现在的网络环境中,代理IP的使用越来越广泛,网络上也能提取到很多免费的代理IP,但是这些IP的质量无法保证,也无法确能否使用,为了提高业务完成的效率,也为了用户个人信息的安全,所以使用这些代理IP之前,我们需要对其进行检测。


如何通过java测试代理ip


JAVA是比较常见的编程语言,那么JAVA在使用代理IP的时候是否也要检测呢?答案是肯定的,那么接下来就为大家介绍两种测试代理IP的方法。

 

第一个:createIPAddress

 

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;

 

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

 

public static void checkProxyIp(Map 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);

 

}

 

}

 

}


相关文章内容简介
推荐阅读