Java用編碼檢測代理ip是否有效
基于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地址和端口號。
創(chuàng)建一個Proxy對象,指定代理類型為HTTP和代理服務器的地址。
然后嘗試使用代理打開一個URL連接,這里是https://www.example.com,并設置連接超時和讀取超時時間為5秒。
獲取響應碼,如果是200則表示代理有效,返回true;否則,捕獲IOException(網(wǎng)絡相關異常)和NumberFormatException(端口號轉(zhuǎn)換異常)并返回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和端口號。
創(chuàng)建一個Socket對象,嘗試連接代理服務器,設置超時時間為5秒。
如果連接成功,關閉Socket并返回true;否則,捕獲異常并返回false。
這些方法只是基本的檢測方式,實際應用中可以根據(jù)具體需求(如檢測代理是否支持特定協(xié)議、是否能夠隱藏真實IP等)進行更復雜的檢測。同時,在進行大量代理IP檢測時,要注意遵守網(wǎng)站的使用規(guī)則,避免過度頻繁的請求導致被封禁。
到此這篇關于Java用編碼檢測代理ip是否有效的文章就介紹到這了,更多相關Java檢測代理ip內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot+WebMagic+MyBaties實現(xiàn)爬蟲和數(shù)據(jù)入庫的示例
WebMagic是一個開源爬蟲框架,本項目通過在SpringBoot項目中使用WebMagic去抓取數(shù)據(jù),最后使用MyBatis將數(shù)據(jù)入庫。具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
解決java讀取EXCEL數(shù)據(jù)變成科學計數(shù)法的問題
這篇文章主要介紹了解決java讀取EXCEL數(shù)據(jù)變成科學計數(shù)法的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04

