使用我的一個WinForms應用程序,我需要在文本框中顯示計算機各種網絡適配器的MAC地址。在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(「:」,等等等等),但我不能完全得到它。
這裏是我凌亂的方式做到這一點,但我覺得我可能會稍後會碰到一些意想不到的問題:
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;
}
有沒有辦法,我缺少一個清晰的解決方案?
只是一個命名的事情,我不會命名函數'SplitMacAddress'。這意味着你正在返回單個位。一個更好的名字可能是'FormatMacAddress'。 :)對不起,我無法幫助實際問題。 –
你的方法究竟有什麼問題? 003E4B880D01有什麼問題,因爲那是實際值。該值實際上並不是「00:3E:4B:88:0D:01」,這對我們人類來說是非常漂亮的。 –
迭代感覺像是過度殺傷,如果我可以在一個區域完成所有操作,我希望稍後再添加一些檢查,我覺得它會變得更加可重用。 –