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是什么意思,