使用我的 WinForms 应用程序之一,我需要在文本框中显示计算机的各种网络适配器的 MAC 地址。
此代码在获取字符串方面效果很好:
public string AdapterAddress(string criteria)
{
adapteraddress = (from nic in NetworkInterface.GetAllNetworkInterfaces()
where nic.Name == criteria
select nic.GetPhysicalAddress().ToString()
).First();
return adapteraddress;
}
但它输出为
003E4B880D01
与
00:3E:4B:88:0D:01
如果我可以直接将它用于命令行“ipconfig /all”,我会喜欢它
我知道我需要做一些事情来获取单个字节,然后用 String.Join(":", blah blah) 加入它们,但我不太明白。
这是我的混乱方式,但我觉得我以后可能会遇到一些意想不到的问题:
public string AdapterAddress(string criteria)
{
adapteraddress = (from nic in NetworkInterface.GetAllNetworkInterfaces()
where nic.Name == criteria
select nic.GetPhysicalAddress().ToString()
).First();
var tempaddress = SplitMacAddress(adapteraddress);
adapteraddress = tempaddress;
return adapteraddress;
}
public string SplitMacAddress(string macadress)
{
for (int Idx = 2; Idx <= 15; Idx += 3)
{
macadress = macadress.Insert(Idx, ":");
}
return macadress;
}
有没有我想念的更清洁的解决方案?