java가 맥 주소를 가져오는 두 가지 방법 (추천)
제1종
public static void main(String[] args) throws Exception {
InetAddress ia = InetAddress.getLocalHost();
System.out.println(getMACAddress(ia));
}
private static String getMACAddress(InetAddress ia) throws Exception {
// ( ), mac ,mac byte 。
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
// mac String
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mac.length; i++) {
if (i != 0) {
sb.append("-");
}
// mac[i] & 0xFF byte
String s = Integer.toHexString(mac[i] & 0xFF);
sb.append(s.length() == 1 ? 0 + s : s);
}
// mac
return sb.toString().toUpperCase();
}
이런 방법은 본 컴퓨터의 맥 주소만 찾을 수 있는 것 같다.제2종
public static void main(String[] args) throws Exception {
getMac("192.168.1.186");
}
public static String getMac(String ip){
String str = null;
String mac = null;
try{
Process p = Runtime.getRuntime().exec("nbtstat -A " + ip);
InputStreamReader ir = new InputStreamReader(p.getInputStream(),"gbk");
LineNumberReader input = new LineNumberReader(ir);
for (; true;) {
str = input.readLine();
if (str != null) {
if (str.indexOf("MAC ") > 1) {
mac = str.substring(str.indexOf("MAC ") + 9);
break;
}
}
}
System.out.println(mac);
}catch(IOException e){
e.printStackTrace();
}
return mac;
}
이런 방법은 내가 비교적 좋아하는 것이지만, 이런 방법은 시간 효율에 있어서 약간 떨어질 수 있다.이 안에 비교적 주의해야 할 점이 하나 있는데 바로 데이터 흐름입니다. gbk 형식으로 바꾸어야 한다는 것을 기억하십시오. 그렇지 않으면 읽은 데이터가 혼란스러워서 뒤에 진행할 수 없습니다. 그리고 필드를 식별하는 데 일부는'MACaddress'일 수 있기 때문에 스스로 조정해야 할 수도 있습니다.다음은 여러분께 가져온 자바가 맥 주소를 얻는 두 가지 방법(추천)의 전부입니다. 많은 응원 부탁드립니다~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.