技术开发 频道

用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
相关文章