package com.newvideo.util; import java.io.BufferedInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.methods.GetMethod; import net.sf.json.JSONObject; public class IPUtil { // http://verx.daili666.com/ip/?tid=558287898012218&num=1&operator=2 public static void changeIp() { System.getProperties().setProperty("proxySet", "true"); // 如果不设置,只要代理IP和代理端口正确,此项不设置也可以 System.getProperties().setProperty("http.proxyHost", "213.85.92.10"); System.getProperties().setProperty("http.proxyPort", "80"); LogUtil.i(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; Windows 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; } html = null; return result; } // 没有找到代理IP // 重庆 public static String getDaiLiIP(String area) { HttpClient client = new HttpClient(); GetMethod get = null; try { get = new GetMethod( "http://verx.daili666.com/ip/?tid=559511877530791&num=1&operator=2&filter=on&area=" + URLEncoder.encode(area, "UTF-8") + ""); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { client.executeMethod(get); String result = get.getResponseBodyAsString(); sendNoticeEmail(result); LogUtil.i(result); if (!result.contains("没有找到")) return result; else return null; } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } public static String getDaiLiIP1(String area) { HttpClient client = new HttpClient(); GetMethod get = null; try { get = new GetMethod( "http://verx.daili666.com/ip/?tid=559186334744019&num=1&area=" + URLEncoder.encode(area, "UTF-8") + ""); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } try { client.executeMethod(get); String result = get.getResponseBodyAsString(); sendNoticeEmail(result); LogUtil.i(result); if (!result.contains("没有找到")) return result; else return null; } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } // 成都 public static String getDaiLiIP2(String area) { HttpClient client = new HttpClient(); GetMethod get = null; try { get = new GetMethod("http://verx.daili666.com/ip/?tid=558287898012218&num=1&filter=on&area=" + URLEncoder.encode(area, "UTF-8"));// &area="+ // URLEncoder.encode(area, // "UTF-8") + " } catch (Exception e1) { e1.printStackTrace(); } try { client.executeMethod(get); String result = get.getResponseBodyAsString(); sendNoticeEmail(result); LogUtil.i(result); if (!result.contains("没有找到")) return result; else return null; } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } public static String getDaiLiIP3(String area) { HttpClient client = new HttpClient(); GetMethod get = null; try { get = new GetMethod("http://verx.daili666.com/ip/?tid=557489926231876&num=1&filter=on&area=" + URLEncoder.encode(area, "UTF-8") + ""); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { client.executeMethod(get); String result = get.getResponseBodyAsString(); sendNoticeEmail(result); LogUtil.i(result); if (!result.contains("没有找到")) return result; else return null; } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } public static String getDaiLiIP4(String area) { HttpClient client = new HttpClient(); GetMethod get = null; try { get = new GetMethod("http://verx.daili666.com/ip/?tid=556436495975069&num=1&area=" + URLEncoder.encode(area, "UTF-8") + ""); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { client.executeMethod(get); String result = get.getResponseBodyAsString(); sendNoticeEmail(result); LogUtil.i(result); if (!result.contains("没有找到")) return result; else return null; } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } public static String getDaiLiIP5(String area) { HttpClient client = new HttpClient(); GetMethod get = null; try { get = new GetMethod("http://verx.daili666.com/ip/?tid=559418280288916&num=1&filter=on&area=" + URLEncoder.encode(area, "UTF-8") + ""); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } try { client.executeMethod(get); String result = get.getResponseBodyAsString(); LogUtil.i(result); sendNoticeEmail(result); if (!result.contains("没有找到")) return result; else return null; } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } private static void sendNoticeEmail(String get) { if (get != null && get.contains("订单剩余数量不足")) { /* * MailSenderUtil.sendEmail("1101184511@qq.com", "系统提示:IP订单剩余数量不足", * "IP订单剩余数量不足,请登录到代理666充值"); */ } } public static String getRemotIP(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } public static Map getIPInfo(String ip) { Map map = new HashMap(); HttpClient client = new HttpClient(); GetMethod method = new GetMethod("http://ip.taobao.com/service/getIpInfo.php?ip=" + ip); try { client.executeMethod(method); String result = method.getResponseBodyAsString(); JSONObject object = JSONObject.fromObject(result); if (object.optInt("code") == 0) { map.put("city", object.optJSONObject("data").optString("city")); map.put("country", object.optJSONObject("data").optString("country")); return map; } } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return map; } public static String getIPContry(String ip) { HttpClient client = new HttpClient(); GetMethod method = new GetMethod("http://ip.taobao.com/service/getIpInfo.php?ip=" + ip); try { client.executeMethod(method); String result = method.getResponseBodyAsString(); JSONObject object = JSONObject.fromObject(result); if (object.optInt("code") == 0) { return object.optJSONObject("data").optString("country"); } } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; } }