获取本机的MAC的方法

it2022-05-09  34

1。用C#调用DOS命令获取本机网卡的MAC地址 System.Diagnostics.Process p=new System.Diagnostics.Process(); p.StartInfo.CreateNoWindow=true; p.StartInfo.UseShellExecute=false; p.StartInfo.RedirectStandardOutput=true; p.StartInfo.FileName="ipconfig"; p.StartInfo.Arguments="/all"; p.Start(); p.WaitForExit(); string s=p.StandardOutput.ReadToEnd(); MessageBox.Show(s.Substring(s.IndexOf("Physical Address. . . . . . . . . :")+36,17)); 2。使用API,利用ARP协议,只能获得同网段计算机的MAC      #region By ARP         [DllImport("Iphlpapi.dll")]         private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);         [DllImport("Ws2_32.dll")]         private static extern Int32 inet_addr(string ip);         public static string GetMacByARP(string clientIP)          {             string ip = clientIP;             Int32 ldest = inet_addr(ip);             Int64 macinfo = new Int64();             Int32 len = 6;             try              {                 SendARP(ldest, 0, ref macinfo, ref len);             }             catch              {                 return "";             }             string originalMACAddress = Convert.ToString(macinfo, 16);             if (originalMACAddress.Length < 12)              {                 originalMACAddress = originalMACAddress.PadLeft(12, '0');             }             string macAddress;             if (originalMACAddress != "0000" && originalMACAddress.Length == 12)              {                 string mac1, mac2, mac3, mac4, mac5, mac6;                 mac1 = originalMACAddress.Substring(10, 2);                 mac2 = originalMACAddress.Substring(8, 2);                 mac3 = originalMACAddress.Substring(6, 2);                 mac4 = originalMACAddress.Substring(4, 2);                 mac5 = originalMACAddress.Substring(2, 2);                 mac6 = originalMACAddress.Substring(0, 2);                 macAddress = mac1 + "-" + mac2 + "-" + mac3 + "-" + mac4 + "-" + mac5 + "-" + mac6;             }             else              {                 macAddress = "";             }             return macAddress.ToUpper();         }         public static IPAddress[] GetLocalIP()          {             string hostName = Dns.GetHostName();             IPHostEntry ipEntry = Dns.GetHostByName(hostName);             return ipEntry.AddressList;         }         #endregion

转载于:https://www.cnblogs.com/tuyile006/archive/2006/11/20/566693.html

相关资源:js获取本机ip地址、mac地址、机器名

最新回复(0)