반응형
안녕하세요.
핸드폰의 mac address를 구하는 방법입니다.
스택 오버플로우 등에는 현재는 동작하지 않는 코드가 많더군요.
저도 그것 때문에 고생을 했는데 아래 함수는 잘 사용하고 있습니다.
핸드폰 Mac Address 구하기
public static String getMacAddress() {
String interfaceName = "wlan0";
try {
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
if (interfaceName != null) {
if (!intf.getName().equalsIgnoreCase(interfaceName))
continue;
}
byte[] mac = intf.getHardwareAddress();
if (mac==null)
return "";
StringBuilder buf = new StringBuilder();
for (int idx=0; idx<mac.length; idx++)
buf.append(String.format("%02X:", mac[idx]));
if (buf.length()>0)
buf.deleteCharAt(buf.length()-1);
return buf.toString();
}
} catch (Exception ex) { } // for now eat exceptions
return "00:00:00:00";
}
Exception이 날 경우 "00:00:00:00"을 return하게 해놓았습니다.
저는 어떻게든 Mac 형식 String이 필요했거든요.
입맛대로 변경하여 사용하시면 되겠습니다.
감사합니다!
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
좋아요 눌러주세요!
반응형
반응형
안녕하세요.
핸드폰의 mac address를 구하는 방법입니다.
스택 오버플로우 등에는 현재는 동작하지 않는 코드가 많더군요.
저도 그것 때문에 고생을 했는데 아래 함수는 잘 사용하고 있습니다.
핸드폰 Mac Address 구하기
public static String getMacAddress() {
String interfaceName = "wlan0";
try {
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
if (interfaceName != null) {
if (!intf.getName().equalsIgnoreCase(interfaceName))
continue;
}
byte[] mac = intf.getHardwareAddress();
if (mac==null)
return "";
StringBuilder buf = new StringBuilder();
for (int idx=0; idx<mac.length; idx++)
buf.append(String.format("%02X:", mac[idx]));
if (buf.length()>0)
buf.deleteCharAt(buf.length()-1);
return buf.toString();
}
} catch (Exception ex) { } // for now eat exceptions
return "00:00:00:00";
}
Exception이 날 경우 "00:00:00:00"을 return하게 해놓았습니다.
저는 어떻게든 Mac 형식 String이 필요했거든요.
입맛대로 변경하여 사용하시면 되겠습니다.
감사합니다!
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
좋아요 눌러주세요!
반응형