用VC.NET获得网卡MAC地址
【IT168技术文档】
.NET在各方面都做得很不错,但是微软显然没有把MSDN做的尽善尽美,以至于很多像我这样的初学者对于如何通过.NET Framework来获取些系统底层的信息感到极为困惑。网上有不少的C#和VB代码, 却没有VC, 好歹也是一个娘生的, 怎么能歧视老大呢?
微软提供了一套Windows Management Instrumentation (WMI)来管理整个操作系统,我们要借助它来查找网卡的MAC地址。
// 默认是没有System::Management这个程序集的,所以要加进去
#using <system.management.dll>
![]()
String *MacAddress=S"";
![]()
// 获得网络适配器配置的管理类
// 这个步骤会把配置信息统统读出来,大约有60条,可以通过Managment::TextFormat来格式化输出
![]()
ManagementClass *cimobject= new ManagementClass(S"Win32_NetworkAdapterConfiguration");
ManagementObjectCollection *moc=cimobject->GetInstances();
_enumerator=moc->GetEnumerator(); //
![]()
while (_enumerator->MoveNext())
...{
mo=(ManagementObject*)_enumerator->Current;
![]()
// 由于网络适配器不止一个,有些是内部虚拟,但只有真正的物理网卡会激活IP
if ((Boolean)(mo->Properties->get_Item(S"IPEnabled")->Value)==true)
MacAddress=mo->Properties->get_Item(S"MacAddress")->Value->ToString();
![]()
}
_enumerator->Dispose(); // 释放
![]()
MessageBox::Show(MacAddress);
同样的我们可以得到系统其他方面的信息,如果要修改它们,则不能如此简单了。
0
相关文章
