如果在Vista下面取网卡的MAC地址? 急!

gungod2000 2008-01-17 02:25:53
下面这段代码是取MAC地址的,在2000和XP下面没有任何问题,无论是联网或者是断开都可以取得MAC地址.
但是在Vista下面,如果是连线状态可以取得MAC地址,但是断线就取不到MAC地址了.
哪位高人能指点一下是什么原因,谢谢了!
try
{
//获取网卡硬件地址
String sReturn = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
sReturn = mo["MacAddress"].ToString();

BFileLog file = new BFileLog();
file.fWriteLog(sReturn);
break;
}
}
moc = null;
mc = null;
sReturn = sReturn.Replace(":", "-");
return sReturn;
}
catch
{
return "";
}
...全文
77 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
longqi293 2008-07-22
  • 打赏
  • 举报
回复
可能和vista的网卡管理方式有关,程序没有错,可能你得先研究vista在断线情况下对网卡状态的管理了。你在断线情况下,用arp -a看看可不可以看到你的mac地址,能得化就让c#通过控制台执行arp -a命令来获取mac吧
wt3056 2008-01-17
  • 打赏
  • 举报
回复
从注册表里读应该可以的.LZ试试
gungod2000 2008-01-17
  • 打赏
  • 举报
回复
着急啊,自己顶一下!

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧