欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java获取电脑外网ip地址方法

发布时间:2023/12/18 java 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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地址方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。