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和代理服務(wù)器的地址。
然后嘗試使用代理打開一個URL連接,這里是https://www.example.com,并設(shè)置連接超時和讀取超時時間為5秒。
獲取響應(yīng)碼,如果是200則表示代理有效,返回true;否則,捕獲IOException(網(wǎng)絡(luò)相關(guān)異常)和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對象,嘗試連接代理服務(wù)器,設(shè)置超時時間為5秒。
如果連接成功,關(guān)閉Socket并返回true;否則,捕獲異常并返回false。
這些方法只是基本的檢測方式,實際應(yīng)用中可以根據(jù)具體需求(如檢測代理是否支持特定協(xié)議、是否能夠隱藏真實IP等)進行更復雜的檢測。同時,在進行大量代理IP檢測時,要注意遵守網(wǎng)站的使用規(guī)則,避免過度頻繁的請求導致被封禁。
到此這篇關(guān)于Java用編碼檢測代理ip是否有效的文章就介紹到這了,更多相關(guān)Java檢測代理ip內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
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