java
[Java] Mac주소 Hex String 변환
잘할수있을거야
2022. 10. 28. 09:22
NetworkInterface.getHardwareAddress() -> byte[]배열로 리턴
Mac주소의 한칸은 00~FF까지 0~255에 해당하는 256개의 값으로 byte 타입으로 충당가능하지만 byte 타입은 범위가 -128~127 이므로 범위의 반이 밀릴텐데 String.format() %x 포맷으로 실제 어떻게 되는지 출력해봄
package string;
public class MacAddressTest {
public static void main(String[] args) {
System.out.println("Mac 주소 확인 테스트 -128부터 127까지");
byte testByte = Byte.MIN_VALUE;
while (testByte != Byte.MAX_VALUE) {
System.out.println("byte: " + testByte
+ " => mac: " + String.format("%X", testByte));
testByte = (byte) (testByte + 1);
}
System.out.println();
}
}
결과
byte: -128 => mac: 80
byte: -127 => mac: 81
...
byte: -2 => mac: FE
byte: -1 => mac: FF
byte: 0 => mac: 0
byte: 1 => mac: 1
...
byte: 125 => mac: 7D
byte: 126 => mac: 7E
두자리 String을 맞추기 위해
package string;
public class MacAddressTest {
public static void main(String[] args) {
System.out.println("Mac 주소 확인 테스트 -128부터 127까지");
byte testByte = Byte.MIN_VALUE;
while (testByte != Byte.MAX_VALUE) {
System.out.println("byte: " + testByte
+ " => mac: " + String.format("%02X", testByte)); //%02X로
testByte = (byte) (testByte + 1);
}
System.out.println();
}
}