服务器端获取外网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(); } } }