使用代理IP、高匿IP、連接失敗
先百度一下,什麽是代理IP
我們使用代理IP就是因為某些站點會屏蔽我們的IP,所以我們要動態的更換代理IP。
代理IP:
其中我們首先選擇國內的IP,國外的一般都比較慢,其次不要選擇如{新疆烏魯木齊}等這樣的偏遠地區,盡量選用一二線城市的IP
關於代理IP的話 也分幾種 透明代理、匿名代理、混淆代理、高匿代理
1、透明代理(Transparent Proxy)
REMOTE_ADDR = Proxy IP
HTTP_VIA = Proxy IP
HTTP_X_FORWARDED_FOR = Your IP
透明代理雖然可以直接“隱藏”你的IP地址,但是還是可以從HTTP_X_FORWARDED_FOR來查到你是誰。
2、匿名代理(Anonymous Proxy)
REMOTE_ADDR = proxy IP
HTTP_VIA = proxy IP
HTTP_X_FORWARDED_FOR = proxy IP
匿名代理比透明代理進步了一點:別人只能知道你用了代理,無法知道你是誰。
3、混淆代理(Distorting Proxies)
REMOTE_ADDR = Proxy IP
HTTP_VIA = Proxy IP
HTTP_X_FORWARDED_FOR = Random IP address
與匿名代理相同,如果使用了混淆代理,別人還是能知道你在用代理,但是會得到一個假的IP地址,偽裝的更逼真。
4、高匿代理(Elite proxy或High Anonymity Proxy)
REMOTE_ADDR = Proxy IP
HTTP_VIA = not determined
HTTP_X_FORWARDED_FOR = not determined
可以看出來,高匿代理讓別人根本無法發現你是在用代理,所以是最好的選擇。
一般我們使用高匿的代理IP。
代碼示例:
public class Demo { public static void main(String[] args) throws Exception { CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、創建實例 HttpGet httpGet=new HttpGet("http://www.bootcss.com/"); //2、創建實例 HttpHost proxy=new HttpHost("114.219.61.82", 8118); RequestConfig config=RequestConfig.custom().setProxy(proxy).build(); httpGet.setConfig(config); CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、執行 HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、獲取實體 //System.out.println(httpEntity.toString()); System.out.println(EntityUtils.toString(httpEntity, "utf-8")); //獲取網頁內容 closeableHttpResponse.close(); closeableHttpClient.close(); } }
運行如入所示:
加入IP失效了,或者我們寫錯了端口號,
那麽會輸出連接失敗信息
使用代理IP、高匿IP、連接失敗