WinForms アプリケーションの 1 つを使用して、コンピューターのさまざまなネットワーク アダプターの 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;
}
私が見逃しているよりクリーンなソリューションはありますか?