2017-04-11 6 views

답변

0

(귀하의 운영 체제 인 경우 nix 시스템, 창문 비슷한 방법으로 ipconfig를 사용하는 경우) 당신은 아래와 같은 시스템 명령을 사용할 수 있습니다

Runtime r = Runtime.getRuntime(); 
Process p = r.exec("ifconfig -u |grep ether"); 
p.waitFor(); 
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line = ""; 

while ((line = b.readLine()) != null) { 
    System.out.println(line); 
} 

b.close(); 

을 내 시스템에 그것을 제공합니다

ether 28:37:37:15:3b:31 
ether b2:00:10:65:56:41 
... 

아마 많은 MAC 주소, 블루투스, 이더넷, WIFI 등이 있습니다.

1

NetworkInterface.getHardwareAddress을 사용할 수 있습니다. NetworkInterface.getNetworkInterfaces()으로 모든 네트워크 카드 목록을 가져올 수 있습니다.

이 코드를 사용하면 MAC 주소를 알 수 있습니다.

InetAddress address = InetAddress.getLocalHost(); 
NetworkInterface nwi = NetworkInterface.getByInetAddress(address); 
byte mac[] = nwi.getHardwareAddress(); 
System.out.println(mac); 
+0

나는 그런 식으로 시도했지만 리눅스에서 로컬 루프백의 주소를 먼저 취하기 때문에 작동하지 않습니다. 그리고 좀 더 구체적으로 말하자면 저는 윈도우즈에서 여러분에게 주어진 방법을 사용하기 때문에 리눅스의 인터넷에 연결된 네트워크 카드의 인터넷 주소 만 필요합니다. –