/**
	  * @param urlStr
	  *            请求的地址
	  * @param content
	  *            请求的参数 格式为:name=xxx&pwd=xxx
	  * @param encoding
	  *            服务器端请求编码。如GBK,UTF-8等
	  * @return
	  */
	 private static String getResult(String urlStr, String content, String encoding) {
		 URL url = null;
		 HttpURLConnection connection = null;
		 try {
			 url = new URL(urlStr);
			 connection = (HttpURLConnection) url.openConnection();// 新建连接实例
			 connection.setConnectTimeout(2000);// 设置连接超时时间,单位毫秒
			 connection.setReadTimeout(2000);// 设置读取数据超时时间,单位毫秒
			 connection.setDoOutput(true);// 是否打开输出流 true|false
			 connection.setDoInput(true);// 是否打开输入流true|false
			 connection.setRequestMethod("POST");// 提交方法POST|GET
			 connection.setUseCaches(false);// 是否缓存true|false
			 connection.connect();// 打开连接端口
			 DataOutputStream out = new DataOutputStream(connection.getOutputStream());// 打开输出流往对端服务器写数据
			 out.writeBytes(content);// 写数据,也就是提交你的表单 name=xxx&pwd=xxx
			 out.flush();// 刷新
			 out.close();// 关闭输出流
			 BufferedReader reader = new BufferedReader(
				   new InputStreamReader(connection.getInputStream(), encoding));// 往对端写完数据对端服务器返回数据,以BufferedReader流来读取
			 StringBuffer buffer = new StringBuffer();
			 String line = "";
		   	 while ((line = reader.readLine()) != null) {
		   		 buffer.append(line);
		   	 }
		   	 reader.close();
		   	 return buffer.toString();
		  } catch (IOException e) {
			  e.printStackTrace();
		  } finally {
			  if (connection != null) {
				  connection.disconnect();// 关闭连接
			  }
		  }
		  return null;
	 }
	 
	 /**
	  * @Title: decodeUnicode 
	  * @author kaka  
	  * @Description: unicode转换成中文   
	  * @param @param theString
	  * @param @return    
	  * @return String   
	  * @throws
	  */
	 private static String decodeUnicode(String theString) {
		 char aChar;
		 int len = theString.length();
		 StringBuffer outBuffer = new StringBuffer(len);
		 for (int x = 0; x < len;) {
			 aChar = theString.charAt(x++);
			 if (aChar == '\\') {
				 aChar = theString.charAt(x++);
				 if (aChar == 'u') {
					 int value = 0;
					 for (int i = 0; i < 4; i++) {
					      aChar = theString.charAt(x++);
					      switch (aChar) {
					      case '0':
					      case '1':
					      case '2':
					      case '3':
					      case '4':
					      case '5':
					      case '6':
					      case '7':
					      case '8':
					      case '9':
					    	  value = (value << 4) + aChar - '0';
					    	  break;
					      case 'a':
					      case 'b':
					      case 'c':
					      case 'd':
					      case 'e':
					      case 'f':
					    	  value = (value << 4) + 10 + aChar - 'a';
					    	  break;
					      case 'A':
					      case 'B':
					      case 'C':
					      case 'D':
					      case 'E':
					      case 'F':
					    	  value = (value << 4) + 10 + aChar - 'A';
					    	  break;
					      default:
					    	  throw new IllegalArgumentException("Malformed encoding.");
					      }
					 }
					 outBuffer.append((char) value);
				} else {
					if (aChar == 't') {
						aChar = '\t';
					} else if (aChar == 'r') {
						aChar = '\r';
					} else if (aChar == 'n') {
						aChar = '\n';
					} else if (aChar == 'f') {
						aChar = '\f';
					}
					outBuffer.append(aChar);
				}
			} else {
				outBuffer.append(aChar);
			}
		 }
		 return outBuffer.toString();
	}
	 /**
	  * 
	  * @param content
	  *            请求的参数 格式为:name=xxx&pwd=xxx
	  * @param encoding
	  *            服务器端请求编码。如GBK,UTF-8等
	  * @return
	  * @throws UnsupportedEncodingException
	  */
	 public static String getAddresses(String content, String encodingString) throws UnsupportedEncodingException {
		 String result = null;
		  StringBuffer sb = new StringBuffer();
		 // 这里调用pconline的接口
		 String urlStr = "http://ip.taobao.com/service/getIpInfo.php";
		 // 从http://whois.pconline.com.cn取得IP所在的省市区信息
		 String returnStr = getResult(urlStr, content, encodingString);
	 	 if (returnStr != null) {
	 		 // 处理返回的省市区信息
		  	 String[] temp = returnStr.split(",");
		  	 if(temp.length<3){
		  		 return "0";//无效IP,局域网测试
		  	 }
		  	
		     String country = ""; 
		     String area = ""; 
		     String region = ""; 
		     String city = ""; 
		     String county = ""; 
		     String isp = ""; 
		     Boolean flag = false;
		     for(int i=0;i<temp.length;i++){
		    	 if(flag){
		    		 return result;
		    	 }
		    	 switch(i){ 
		    	 case 1:
		    		 country = (temp[i].split(":"))[2].replaceAll("\"", ""); 
		    		 country = decodeUnicode(country);//国家 
		    		 if(country.equals("未分配或者内网IP")){
		    			 flag = true;
		    			 sb.append(country);
		    			 result = sb.toString();
		    			 break;
		    		 }
		    		 sb.append("国家:");
		    		 sb.append(country);
		    		 sb.append(",");
		    		 break; 
		    	 case 3:
		    		 area =(temp[i].split(":"))[1].replaceAll("\"", ""); 
		    		 area = decodeUnicode(area);//地区 
		    		 break; 
		    	 case 5:
		    		 region = (temp[i].split(":"))[1].replaceAll("\"", ""); 
		    		 region = decodeUnicode(region);//省份 
		    		 sb.append("省份:");
		    		 sb.append(region);
		    		 sb.append(",");
		    		 break; 
		    	 case 7:
		    		 city = (temp[i].split(":"))[1].replaceAll("\"", ""); 
		    		 city = decodeUnicode(city);//市区 
		    		 sb.append("城市:");
		    		 sb.append(city);
		    		 sb.append(",");
		    		 break; 
		    	 case 9:
		    		 county = (temp[i].split(":"))[1].replaceAll("\"", ""); 
		    		 county = decodeUnicode(county);//地区
		    		 sb.append("地区:");
		    		 sb.append(county);
		    		 break; 
		    	 case 11:
		    		 isp = (temp[i].split(":"))[1].replaceAll("\"", ""); 
		    		 isp = decodeUnicode(isp);//ISP公司 
		    		 break; 
		    	 } 
		    }
		    result = sb.toString();
	 	 }
	  	 return result;
	 }
最近下载更多
czr2233  LV9 4月28日
xiaofang45612  LV8 2022年5月26日
java-xiaozhang  LV1 2022年4月1日
lixidada  LV1 2021年12月13日
2636499218  LV1 2021年12月9日
liuhuanxiaojiji  LV1 2021年11月11日
十二  LV1 2021年7月1日
Adger_Liu  LV3 2021年3月24日
apple300  LV1 2020年12月14日
BruceQ  LV14 2020年12月10日
最近浏览更多
czr2233  LV9 4月28日
暂无贡献等级
微信网友_6698455742353408 2023年10月19日
暂无贡献等级
zhtssss  LV1 2023年7月4日
2517786374  LV4 2023年6月13日
不嘻嘻  LV8 2023年5月31日
徐万强  LV9 2023年5月31日
wuziayng1232  LV10 2023年5月17日
naiwohe  LV3 2022年12月1日
xiaofang45612  LV8 2022年5月26日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友