Java获取电脑外网ip地址方法
生活随笔
收集整理的这篇文章主要介绍了
Java获取电脑外网ip地址方法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
废话不多说,直接上代码
/** 接口超时时间 */private static final Integer TIME_OUT = 1000;public static String INTRANET_IP = getIntranetIp(); // 内网IPpublic static String INTERNET_IP = getV4IP(); // 外网IPprivate CustomSystemUtil(){}/*** 获得内网IP* @return 内网IP*/private static String getIntranetIp(){try{return InetAddress.getLocalHost().getHostAddress();} catch(Exception e){throw new RuntimeException(e);}}/*** 获得外网IP* @return 外网IP*/private static String getV4IP(){String ip = "";String chinaz = "http://ip.chinaz.com";StringBuilder inputLine = new StringBuilder();String read = "";URL url = null;HttpURLConnection urlConnection = null;BufferedReader in = null;try {url = new URL(chinaz);try {urlConnection = (HttpURLConnection) url.openConnection();urlConnection.setConnectTimeout(TIME_OUT);urlConnection.setReadTimeout(TIME_OUT);in = new BufferedReader( new InputStreamReader(urlConnection.getInputStream(),"UTF-8"));} catch (Exception e) {//如果超时,则返回内网ipreturn INTRANET_IP;}while((read=in.readLine())!=null){inputLine.append(read+"\r\n");}//System.out.println(inputLine.toString());} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{if(in!=null){try {in.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}Pattern p = Pattern.compile("\\<dd class\\=\"fz24\">(.*?)\\<\\/dd>");Matcher m = p.matcher(inputLine.toString());if(m.find()){String ipstr = m.group(1);ip = ipstr;//System.out.println(ipstr);}if ("".equals(ip)) {// 如果没有外网IP,就返回内网IPreturn INTRANET_IP;}return ip;}public static void main(String[] args) {System.out.println(getV4IP());}
总结
以上是生活随笔为你收集整理的Java获取电脑外网ip地址方法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 计算机软件定时运行,Win7打开定时运行
- 下一篇: Java中undefined是什么意思,