获取本机IP、MAC地址

正在着手写《用Remoting技术实现Push消息》,其中用到将消息PUSH到客户端,此时必须知道客户端的一些信息,比如IP地址、端口什么的。在这里先把获取IP地址、Mac地址信息的代码贴上来。文章要等我有时间再写吧。

       /// <summary>
      
/// 获取本地计算机的MAC地址
      
/// </summary>
      
/// <returns>MAC地址</returns>
      
/// <remarks>
      
/// 获取本地计算机的MAC地址
      
/// </remarks>

       static   public   string  GetMacAddress()
      
{
         
string strMac = string.Empty;
         ManagementClass mc 
= new ManagementClass("Win32_NetworkAdapterConfiguration");
         ManagementObjectCollection moc 
= mc.GetInstances();
   
         
foreach(ManagementObject mo in moc)
         
{
            
if ((bool)mo["IPEnabled"== true)
            
{
               strMac 
+= mo["MacAddress"].ToString();
            }

         }

         
return strMac;
      }
 
      
      
/// <summary>
      
/// 获取本地计算机的IP地址
      
/// </summary>
      
/// <returns>IP地址</returns>
      
/// <remarks>
      
/// 获取本地计算机的IP地址
      
/// </remarks>

       static   public   string  GetIPAddress()
      
{
         
string strIP = string.Empty;
         ManagementClass mc 
= new ManagementClass("Win32_NetworkAdapterConfiguration");
         ManagementObjectCollection moc 
= mc.GetInstances();
   
         
foreach(ManagementObject mo in moc)
         
{
            
if ((bool)mo["IPEnabled"== true)
            
{
               
string[] ipaddresses = (string[]) mo["IPAddress"]; 
               
if(ipaddresses.Length > 0)
                  strIP 
= ipaddresses[0];
            }

         }

         
return strIP;
      }
 

      
/// <summary>
      
/// 获取计算机本地名称
      
/// </summary>
      
/// <returns>计算机本地名称</returns>
      
/// <remarks>
      
/// 获取计算机本地名称
      
/// </remarks>

       static   public   string  GetHostName()
      
{
         
string HostName = "";
         
try
         
{
            HostName 
= Dns.GetHostName();
         }

         
catch
         
{
         }

         
return HostName;
      }

如果希望扫描谁在网上或想知道同网段某机器的Mac地址就需要换种方法了。

谢谢 hBifTs 提醒,附上使用Dns获取IP地址的方法代码供参考:

public   static   void  GetIPAddress()
{
   IPHostEntry hostInfo 
= Dns.Resolve(Dns.GetHostName());
   IPAddress SrcAddress 
= hostInfo.AddressList[0];
   
return SrcAddress.ToString();
}

你可能感兴趣的:(mac)