Check if IP address is in range - Android java.net

Android examples for java.net:IP Address

Description

Check if IP address is in range

Demo Code

public class Main {

  public static boolean ipIsValid(String ipSection, String ip) {
    ipSection = ipSection.trim();/*from  w w w.  j  a v  a 2s .  co  m*/
    ip = ip.trim();
    final String REGX_IP = "((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)";
    final String REGX_IPB = REGX_IP + "\\-" + REGX_IP;
    if (!ipSection.matches(REGX_IPB) || !ip.matches(REGX_IP))
      return false;
    int idx = ipSection.indexOf('-');
    String[] sips = ipSection.substring(0, idx).split("\\.");
    String[] sipe = ipSection.substring(idx + 1).split("\\.");
    String[] sipt = ip.split("\\.");
    long ips = 0L, ipe = 0L, ipt = 0L;
    for (int i = 0; i < 4; ++i) {
      ips = ips << 8 | Integer.parseInt(sips[i]);
      ipe = ipe << 8 | Integer.parseInt(sipe[i]);
      ipt = ipt << 8 | Integer.parseInt(sipt[i]);
    }
    if (ips > ipe) {
      long t = ips;
      ips = ipe;
      ipe = t;
    }
    return ips <= ipt && ipt <= ipe;
  }

}

Related Tutorials