how to separate mac address on windows...?

7 visualizzazioni (ultimi 30 giorni)
Kelvin Viroja
Kelvin Viroja il 5 Set 2016
Risposto: Xiangrui Li il 1 Mag 2017
system ('getmac'); When i run this command it return 3 mac address... Is it Possible to separate this all 3 mac address or fatch any one of them ?

Risposte (1)

Xiangrui Li
Xiangrui Li il 1 Mag 2017
For Windows:
[~, a] = system ('getmac');
mac = regexp(a, '([0-9A-F]{2}-){5}[0-9A-F]{2}', 'match', 'once'); % get first one in string
mac = regexp(a, '([0-9A-F]{2}-){5}[0-9A-F]{2}', 'match'); % get all in cellstr
For OSX and Linux, it is a slightly different:
[~, a] = system ('ifconfig');
mac = regexp(a, '([0-9a-f]{2}:){5}[0-9a-f]{2}', 'match', 'once'); % get first one in string
mac = regexp(a, '([0-9a-f]{2}:){5}[0-9a-f]{2}', 'match'); % get all in cellstr
If java is available, it is faster than system command, and the solution is OS-independent:
ni = java.net.NetworkInterface.getNetworkInterfaces;
while ni.hasMoreElements
m = ni.nextElement.getHardwareAddress;
if numel(m)==6 && ~all(m==0) % accept it if length==6 and not all zeros
mac = typecast(m, 'uint8'); % uint8 format
mac = sprintf('%02X-%02X-%02X-%02X-%02X-%02X', mac); % Windows hex format
% mac = sprintf('%02x:%02x:%02x:%02x:%02x:%02x', mac); % unix hex format
break; % stop after finding first one, likely ethernet adaptor
end
end

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by