Java

[JAVA] IP 대역 패턴 체크 하는 방법 (예제 코드 포함)

IP대역을 체크해야할 때 사용하자

public static void main(String[] args) {
	String userIp = "192.168.0.1";
	String authIp = "192.168.0.*";
	String authIp = "192.168.*.*";
	String authIp = "192.*.*.*";

	boolean isTrue = Pattern.matches(authIp.substring(0, authIp.lastIndexOf('.')) + ".([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])", userIp);

	if (isTrue) {
		System.out.println("접근 허용");
	} else {
		System.out.println("접근 불가");
	}
}

 

다음은 와일드 카드문자(*) 또는 IP범위를 지정할 수 있는 샘플 코드이다.

public class NetworkUtils
{
  /**
   * check if IP address match pattern
   * 
   * @param pattern
   *            *.*.*.* , 192.168.1.0-255 , *
   * @param address
   *            - 192.168.1.1<BR>
   *            <code>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></code>
   * @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;
  }
}

 

자바 코드 메모리 체크 하는 방법

Runtime.getRuntime().gc();
long startTime = System.nanoTime();

// 테스트 대상 코드 삽입

long endTime = System.nanoTime();
Double time = (endTime - startTime) / 1000000.0;
System.out.println(time);

long usedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
System.out.println("코드에서 사용한 메모리: " + usedMemory + " bytes");

 

[REFERENCE]

 

Leave a Reply

error: Content is protected !!