First we try, then we trust

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

正在着手写《用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();
}
posted on   吕震宇  阅读(3472)  评论(4编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示