我正在尋找一種方法在C#中生成一個隨機的MAC號碼。 Google在這方面相當薄弱。生成一個隨機的mac地址
THX很多
SOLUTION:
隨着葉海亞的幫助,我編寫了以下解決方案。 Thx再次!
public static string GenerateMACAddress()
{
var sBuilder = new StringBuilder();
var r = new Random();
int number;
byte b;
for (int i = 0; i < 6; i++)
{
number = r.Next(0, 255);
b = Convert.ToByte(number);
if (i == 0)
{
b = setBit(b, 6); //--> set locally administered
b = unsetBit(b, 7); // --> set unicast
}
sBuilder.Append(number.ToString("X2"));
}
return sBuilder.ToString().ToUpper();
}
private static byte setBit(byte b, int BitNumber)
{
if (BitNumber < 8 && BitNumber > -1)
{
return (byte)(b | (byte)(0x01 << BitNumber));
}
else
{
throw new InvalidOperationException(
"Der Wert für BitNumber " + BitNumber.ToString() + " war nicht im zulässigen Bereich! (BitNumber = (min)0 - (max)7)");
}
}
private static byte unsetBit(byte b, int BitNumber)
{
if (BitNumber < 8 && BitNumber > -1)
{
return (byte)(b | (byte)(0x00 << BitNumber));
}
else
{
throw new InvalidOperationException(
"Der Wert für BitNumber " + BitNumber.ToString() + " war nicht im zulässigen Bereich! (BitNumber = (min)0 - (max)7)");
}
}
有是在.NET框架沒有這樣的方法......你嘗試過什麼?什麼不工作?你的目標究竟是什麼? – Yahia 2012-04-15 10:43:54
以及我認爲可能有一個現有的方法,將生成一個像MAC字符串格式的數字。如果沒有,我必須自己寫... – MUG4N 2012-04-15 10:47:58
你只需要在最左邊的字節上旋轉,而不是全部。而且您不需要編寫方法來設置和清除位:使用|和&運營商。 – EJP 2012-04-15 22:21:11