java動態設定IP

來源:互聯網
上載者:User
工作需要要寫一個spider訪問XXX網站,但是由於我訪問頻率很高經常被XX網站封IP(我知道這是不道德的,但是沒辦法)。為了突破IP限制需要動態替換代理ip。 

代碼如下: 
Java代碼   import java.io.BufferedInputStream;   import java.io.IOException;   import java.net.URL;   import java.net.URLConnection;      import org.apache.log4j.Logger;      /**    * @author Jason   * @date  Oct 27, 2010   * @version 1.0    */   public class TestProxyIp  {       private static final Logger log = Logger.getLogger(TestProxyIp.class);              public static void main(String[] args) throws IOException {           System.setProperty("http.maxRedirects", "50");           System.getProperties().setProperty("proxySet", "true");           // 如果不設定,只要代理IP和代理連接埠正確,此項不設定也可以           String ip = "93.91.200.146";           ip = "221.130.18.5";           ip = "221.130.23.135";           ip = "221.130.18.78";           ip = "221.130.23.134";           ip = "221.130.18.49";           ip = "111.1.32.36";           ip = "221.130.18.49";           ip = "221.130.18.49";           System.getProperties().setProperty("http.proxyHost", ip);           System.getProperties().setProperty("http.proxyPort", "80");                      //確定代理是否設定成功           log.info(getHtml("http://www.ip138.com/ip2city.asp"));                  }              private static String getHtml(String address){           StringBuffer html = new StringBuffer();           String result = null;           try{               URL url = new URL(address);               URLConnection conn = url.openConnection();               conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)");               BufferedInputStream in = new BufferedInputStream(conn.getInputStream());                              try{                   String inputLine;                   byte[] buf = new byte[4096];                   int bytesRead = 0;                   while (bytesRead >= 0) {                       inputLine = new String(buf, 0, bytesRead, "ISO-8859-1");                       html.append(inputLine);                       bytesRead = in.read(buf);                       inputLine = null;                   }                   buf = null;               }finally{                   in.close();                   conn = null;                   url = null;               }               result = new String(html.toString().trim().getBytes("ISO-8859-1"), "gb2312").toLowerCase();                          }catch (Exception e) {               e.printStackTrace();               return null;           }finally{               html = null;                       }           return result;       }   }  
運行結果如下: 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.