/// <summary>获取随机生成的MAC全局单播地址</summary>
/// <param name="separator">分隔符。默认为“-”符号</param>
/// <param name="upper">返回的十六进制值是否大写。默认为 false,即小写</param>
public static string GetRandomMacAddress(string separator = "-", bool upper = false)
{
var b = new byte[6];
Random.Shared.NextBytes(b);
// 确保是全局单播地址
// MAC地址第 7 位为 0 是全局地址,为 1 是本地地址
// MAC地址第 8 位为 0 是单播地址,为 1 是组播地址。全F的广播地址也是组播的一种
// 7 和 8 位都为 0 则是 4 的倍数
if (b[0] % 4 != 0) b[0] <<= 2; //左移两位
return String.Join(separator, b.Select(x => x.ToString(upper ? "X2" : "x2")).ToArray());
}
随机生成 MAC 全局单播地址(C#,.Net 6+)
最新推荐文章于 2024-06-29 09:04:19 发布