首页 编程 软件学院 查看内容

Android获取外网和内网的IP

2015-4-30 11:39 840 0

摘要: 很晚了,直接上代码: [java] view plaincopyprint?/**      * 获取外网的IP(要访问Ur...
关键词: nbsp httpConnection printStackTrace return String HttpURLConnectio inStream catch Matcher null

很晚了,直接上代码: [java] view plaincopyprint?/**      * 获取外网的IP(要访问Url,要放到后台线程里处理)      *       * @Title: GetNetIp      * @Description:      * @param @return      * @return String      * @throws      */      public static String GetNetIp() {          URL infoUrl = null;          InputStream inStream = null;          String ipLine = "";          HttpURLConnection httpConnection = null;          try {              infoUrl = new URL("http://ip168.com/");              URLConnection connection = infoUrl.openConnection();              httpConnection = (HttpURLConnection) connection;              int responseCode = httpConnection.getResponseCode();              if (responseCode == HttpURLConnection.HTTP_OK) {                  inStream = httpConnection.getInputStream();                  BufferedReader reader = new BufferedReader(                          new InputStreamReader(inStream, "utf-8"));                  StringBuilder strber = new StringBuilder();                  String line = null;                  while ((line = reader.readLine()) != null)                      strber.append(line + "\n");                    Pattern pattern = Pattern                          .compile("((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))");                  Matcher matcher = pattern.matcher(strber.toString());                  if (matcher.find()) {                      ipLine = matcher.group();                  }              }            } catch (MalformedURLException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          } finally {              try {                  inStream.close();                  httpConnection.disconnect();              } catch (IOException e) {                  e.printStackTrace();              }          }          return ipLine;      }        /**      * 获取本地IP      *       * @return      */      public static String getLocalIpAddress() {          try {              Enumeration<NetworkInterface> en = NetworkInterface                      .getNetworkInterfaces();              while (en.hasMoreElements()) {                  NetworkInterface ni = en.nextElement();                  Enumeration<InetAddress> enIp = ni.getInetAddresses();                  while (enIp.hasMoreElements()) {                      InetAddress inet = enIp.nextElement();                      if (!inet.isLoopbackAddress()                              && (inet instanceof Inet4Address)) {                          return inet.getHostAddress().toString();                      }                  }              }          } catch (SocketException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }            return "0";      } 
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部