如何用编码检测代理ip是否有效(Java语言)

基于java.net包(简单的 HTTP 请求检测)用Java语言方法来检测代理IP是否有效:

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;

public class ProxyChecker {
    public static boolean checkProxy(String proxy) {
        try {
            String[] parts = proxy.split(":");
            String ip = parts[0];
            int port = Integer.parseInt(parts[1]);
            Proxy proxyObj = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, port));
            URL url = new URL("https://www.example.com");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxyObj);
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            int responseCode = connection.getResponseCode();
            if (responseCode == 200) {
                return true;
            } else {
                return false;
            }
        } catch (IOException | NumberFormatException e) {
            return false;
        }
    }

代码解析:在checkProxy方法中,首先从代理IP字符串中拆分出IP地址和端口号。

创建一个Proxy对象,指定代理类型为HTTP和代理服务器的地址。

然后尝试使用代理打开一个URL连接,这里是https://www.example.com,并设置连接超时和读取超时时间为5秒。

获取响应码,如果是200则表示代理有效,返回true;否则,捕获IOException(网络相关异常)和NumberFormatException(端口号转换异常)并返回false。

第二个示例:基于java.net.Socket(底层的TCP连接检测)

import java.io.IOException;
import java.net.Socket;

public class ProxySocketChecker {
    public static boolean checkProxySocket(String proxy) {
        try {
            String[] parts = proxy.split(":");
            String ip = parts[0];
            int port = Integer.parseInt(parts[1]);
            Socket socket = new Socket();
            socket.connect(new java.net.InetSocketAddress(ip, port), 5000);
            socket.close();
            return true;
        } catch (IOException | NumberFormatException e) {
            return false;
        }
    }
}

代码解释:在checkProxySocket方法中,同样先拆分代理IP字符串得到IP和端口号。

创建一个Socket对象,尝试连接代理服务器,设置超时时间为5秒。

如果连接成功,关闭Socket并返回true;否则,捕获异常并返回false。

这些方法只是基本的检测方式,实际应用中可以根据具体需求(如检测代理是否支持特定协议、是否能够隐藏真实IP等)进行更复杂的检测。同时,在进行大量代理IP检测时,要注意遵守网站的使用规则,避免过度频繁的请求导致被封禁。

仅供参考,感谢审核大大,欢迎交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值