服务器端获取外网ip

来源:互联网 发布:淘宝百度云盘账号购买 编辑:程序博客网 时间:2024/05/15 22:54
//得到用户外网的ippublic void getWWIP(){// 输入流 InputStream in = null;          // 到外网提供者的Http连接          HttpURLConnection httpConn = null;         String externalIpProviderUrl="http://checkip.dyndns.org/";        try {           // 打开连接              URL url = new URL(externalIpProviderUrl);              httpConn = (HttpURLConnection) url.openConnection();                          // 连接设置              HttpURLConnection.setFollowRedirects(true);              httpConn.setRequestMethod("GET");              httpConn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");                // 获取连接的输入流              in = httpConn.getInputStream();              byte[] bytes=new byte[1024];// 此大小可根据实际情况调整                         // 读取到数组中              int offset = 0;              int numRead = 0;              while (offset < bytes.length                     && (numRead=in.read(bytes, offset, bytes.length-offset)) >= 0) {                  offset += numRead;              }                            // 将字节转化为为UTF-8的字符串                      String receivedString=new String(bytes,"UTF-8");              Pattern pattern=Pattern.compile("(\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})", Pattern.CASE_INSENSITIVE);             String wwip="";             Matcher matcher=pattern.matcher(receivedString);                      while(matcher.find()){              wwip=matcher.group(0);              }                JSONObject jsonobj=new JSONObject();            HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("text/json; charset=GBK");jsonobj.put("ip", wwip);response.getWriter().write(jsonobj.toString());        } catch (Exception e) {              e.printStackTrace();          } finally {              try {                  in.close();                  httpConn.disconnect();              } catch (Exception ex) {                  ex.printStackTrace();              }          }  }