사용자 도구

사이트 도구


java:network

문서의 이전 판입니다!


Java Network

IP Address match

  • Check if IP address match pattern : IP Address « Network Protocol « Java
      /**
       * check if IP address match pattern
       * 
       * @param pattern
       *            *.*.*.* , 192.168.1.0-255 , *
       * @param address
       *            - 192.168.1.1<BR>
       *            address = 10.2.88.12  pattern = *.*.*.*   result: true<BR>
       *            address = 10.2.88.12  pattern = *   result: true<BR>
       *            address = 10.2.88.12  pattern = 10.2.88.12-13   result: true<BR>
       *            address = 10.2.88.12  pattern = 10.2.88.13-125   result: false<BR>
       * @return true if address match pattern
       */
      public static boolean checkIPMatching(String pattern, String address)
      {
        if (pattern.equals("*.*.*.*") || pattern.equals("*"))
          return true;
     
        String[] mask = pattern.split("\\.");
        String[] ip_address = address.split("\\.");
        for (int i = 0; i < mask.length; i++)
        {
          if (mask[i].equals("*") || mask[i].equals(ip_address[i]))
            continue;
          else if (mask[i].contains("-"))
          {
            byte min = Byte.parseByte(mask[i].split("-")[0]);
            byte max = Byte.parseByte(mask[i].split("-")[1]);
            byte ip = Byte.parseByte(ip_address[i]);
            if (ip < min || ip > max)
              return false;
          }
          else
            return false;
        }
        return true;
      }
  • Apache Commons net SubnetUtils를 사용할 수도 있다.
java/network.1432542507.txt.gz · 마지막으로 수정됨: 2015/05/25 17:28 저자 kwon37xi