using System.ManageMent  

解决方案 »

  1.   

    估计是你的这个类丢失了,而不是功能不可用了。using System.Management;
    using System.Runtime.InteropServices; 
    using System.Text;  
    using System.Text.RegularExpressions; [DllImport("Iphlpapi.dll")]   
    private static extern int SendARP(Int32 dest,Int32 host,ref Int32 mac,ref Int32 length);   
    [DllImport("Ws2_32.dll")]   
    private static extern Int32 inet_addr(string ip);  string IPAddress=System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0].ToString();
    MessageBox.Show("ip: "+IPAddress);
    string mac = this.GetMACFromIP(IPAddress);
    MessageBox.Show("mac: "+mac);private   string   GetMACFromIP(string   A_strIP)   
      {   
       string   strRet   =   "Unknown";   
        
       string   strIPPattern   =   @"^\d+\.\d+\.\d+\.\d+$";   
        
       Regex   objRex   =new   Regex(strIPPattern);   
        
       if(objRex.IsMatch(A_strIP)   ==   true)   
       {   
        Int32   intDest   =   inet_addr(A_strIP);   
        Int32   []   arrMAC   =   new   Int32[2];   
        Int32   intLen   =   6;   
        
        int   intResult   =   SendARP(intDest,0,ref   arrMAC[0],ref   intLen);   
        
        if(intResult   ==   0)   
        {   
         Byte   []   arrbyte   =   new   Byte[8];   
         arrbyte[5]   =   (Byte)(arrMAC[1]   >>   8);   
         arrbyte[4]   =   (Byte)arrMAC[1];   
         arrbyte[3]   =   (Byte)(arrMAC[0]   >>   24);   
         arrbyte[2]   =   (Byte)(arrMAC[0]   >>   16);   
         arrbyte[1]   =   (Byte)(arrMAC[0]   >>   8);   
         arrbyte[0]   =   (Byte)arrMAC[0];   
        
         StringBuilder   strbMAC   =   new   StringBuilder();   
        
         for(int   intIndex   =   0   ;intIndex   <   6;intIndex   ++)   
         {   
          if(intIndex   >   0)   strbMAC.Append("-");   
          strbMAC.Append(arrbyte[intIndex].ToString("X2"));   
         }   
         strRet   =   strbMAC.ToString();   
        }   
       }   
        
       return   strRet;   
      }这个只提供mac的获取方法,ip获取和硬盘号之类的,搜索下吧,网上这类内容还是很多的
      

  2.   

      public string GetMoAddress()
            {
                string MoAddress = " ";
                using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
                {
                    ManagementObjectCollection moc2 = mc.GetInstances();
                    foreach (ManagementObject mo in moc2)
                    {
                        if ((bool)mo["IPEnabled"] == true)
                            MoAddress = mo["MacAddress"].ToString();
                        mo.Dispose();
                    }
                }
                return MoAddress.ToString();
            }  
      

  3.   

    05一样可以 添加引用System.ManageMent 就可以了 2#正解.