C# 将字符串从文本框转换为 MacAddress

C# Convert string from textbox to MacAddress

有没有办法将这种格式 (00:15:5D:03:8D:01) 的文本框字符串转换为 MacAddress 变量?我正在使用 PcapDotNet 库。

只需使用MacAddress的构造函数,它接受一个字符串:

MacAddress address = MacAddress(textbox.Text);

另请参阅: https://github.com/PcapDotNet/Pcap.Net/blob/master/PcapDotNet/src/PcapDotNet.Packets/Ethernet/MacAddress.cs

您可以使用 string constructor:

var macAddress = new MacAddress(textBox1.Text);

正如您从链接的代码中看到的那样,如果您没有传入有效的 mac 地址,它将引发异常。您可以在传递之前执行检查:

string mac = textBox1.Text;
var acceptableChars = ":0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";        
if (mac.All(c => acceptableChars.IndexOf(c) != -1) && mac.Count(c => c == ':') == 5 && mac.Length == 17)
{
    var macAddress = new MacAddress(mac);
}
else
{
    // invalid mac
}

这确保所有字符都是 :、0-9、a-f(和 A-F),并且有 6 个部分且总长度为 17。这将帮助您避免在无效 mac 已输入。