[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]