Java 프로그래밍을 통해 두 MAC 주소 사이의 모든 MAC를 스트리밍하는 방법
배포된 장치를 백그라운드 관리할 때 장치 MAC라는 필드를 사용할 때가 많습니다. 유일한 장치를 표시할 수 있습니다.그러나 데이터베이스에 대량으로 MAC 주소를 저장할 때 해석 텍스트를 줄마다 추가하는 방식을 사용하면 조작이 복잡하고 사전에 MAC 주소 텍스트를 생성해야 한다.사실 MAC 주소는 16진법에 따라 점차적으로 증가하기 때문에 한 구간만 제시하면 모든 MAC 주소를 하나씩 꺼낼 수 있다.다음은 필자가 봉인한 두 개의 MAC 주소를 통해 매거진 구간에 있는 모든 MAC의 함수입니다.
/** MAC MAC */
public static void countBetweenMac(String macStart, String macEnd){
long start = turnMacToLong(macStart);
long end = turnMacToLong(macEnd);
String prefix = macStart.substring(0,9);
String hex = null;
String suffix = null;
StringBuffer sb = null;
for(long i=start; i< end +1; i++){
hex = Long.toHexString(i);
suffix = hex.substring(hex.length()-6);
sb = new StringBuffer(suffix);
sb.insert(2, ":");
sb.insert(5, ":");
System.out.println(prefix + sb.toString());
}
}
/** MAC */
public static long turnMacToLong(String MAC){
String hex = MAC.replaceAll("\\:", "");
long longMac = Long.parseLong(hex, 16);
return longMac;
}
두 MAC 사이의 MAC 개수 함수를 계산하는 추가 기능:
/** MAC */
public static long countMac1(String macStart, String macEnd){
String hexStart = macStart.replaceAll("\\:", "");
String hexEnd = macEnd.replaceAll("\\:", "");
long start = Long.parseLong(hexStart, 16);
long end = Long.parseLong(hexEnd, 16);
return end-start+1;
}
/** MAC */
public static long countMac(String macStart, String macEnd){
String[] start = macStart.split("\\:");
String[] end = macEnd.split("\\:");
int x,y,z;
int a,b,c;
x = Integer.parseInt(start[3],16);
y = Integer.parseInt(start[4],16);
z = Integer.parseInt(start[5],16);
a = Integer.parseInt(end[3],16);
b = Integer.parseInt(end[4],16);
c = Integer.parseInt(end[5],16);
return (a-x)*16*16*16 + (b-y)*16*16 + c-z+1;
}
본 논문이 여러분의 Java 프로그램 설계에 도움이 되기를 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.