if ispc
[status,result] = dos('getmac');
if status == 0
mac = result(160:176);
else
error('Unable to obtain MAC address.\n%s',result)
end
elseif isunix
[status,result] = system('ifconfig en0 | awk ''/ether/ {print $2}''');
if status == 0
mac = result(1:end-1); %remove trailing carriage return
else
error('Unable to obtain MAC address.\n%s',result);
end
else
error('Platform not recognized. Unable to obtain MAC address.');
end
2条答案
按热度按时间nukf8bse1#
由于您的问题最初有macos标记(在问题被编辑之前),下面是一个更通用的错误检查解决方案,应该可以在Windows、MacOS和其他UNIX/Linux系统上使用:
对于基于Unix的系统(包括MacOS),
system
函数用于调用终端中的ifconfig
和awk
命令。请注意,对于Windows和UNIX,此解决方案都会返回en0上主以太网接口的MAC地址。在某些系统上,可能需要将其更改为en1或另一个接口ID,具体取决于
ifconfig
返回的内容。您还可以通过system
使用ifconfig
在UNIX系统上获取IP地址、端口号等。eblbsuwk2#
MathWorks员工回答了on MATLAB answers:
使用此命令的输出,您可以解析结果字符串输出以获得MAC地址。例如: