View Javadoc
1   package us.codecraft.webmagic.utils;
2   
3   import org.slf4j.Logger;
4   import org.slf4j.LoggerFactory;
5   import us.codecraft.webmagic.proxy.Proxy;
6   
7   import java.io.IOException;
8   import java.net.InetSocketAddress;
9   import java.net.Socket;
10  
11  /**
12   * Pooled Proxy Object
13   * 
14   * @author yxssfxwzy@sina.com <br>
15   * @since 0.5.1
16   */
17  
18  public class ProxyUtils {
19  
20  	private static final Logger logger = LoggerFactory.getLogger(ProxyUtils.class);
21  
22  	public static boolean validateProxy(Proxy p) {
23  		Socket socket = null;
24  		try {
25  			socket = new Socket();
26  			InetSocketAddress endpointSocketAddr = new InetSocketAddress(p.getHost(), p.getPort());
27  			socket.connect(endpointSocketAddr, 3000);
28  			return true;
29  		} catch (IOException e) {
30  			logger.warn("FAILRE - CAN not connect!  remote: " + p);
31  			return false;
32  		} finally {
33  			if (socket != null) {
34  				try {
35  					socket.close();
36  				} catch (IOException e) {
37  					logger.warn("Error occurred while closing socket of validating proxy", e);
38  				}
39  			}
40  		}
41  
42  	}
43  
44  }