获取局域网计算机名以及IP以及mac地址

系统 2099 0
        
          void
        
        
           GetAll()

        {

            IDictionary
        
        <
        
          string
        
        , 
        
          string
        
        > hostList = 
        
          new
        
         Dictionary<
        
          string
        
        , 
        
          string
        
        >
        
          ();

            DirectoryEntry MainGroup 
        
        = 
        
          new
        
         DirectoryEntry(
        
          "
        
        
          WinNT:
        
        
          "
        
        
          );

            
        
        
          foreach
        
         (DirectoryEntry domain 
        
          in
        
        
           MainGroup.Children)

            {

                
        
        
          foreach
        
         (DirectoryEntry pc 
        
          in
        
        
           domain.Children)

                {

                    
        
        
          try
        
        
          

                    {

                        System.Net.IPAddress[] remoteHost 
        
        =
        
           Dns.GetHostAddresses(pc.Name);

                        hostList.Add(pc.Name, remoteHost[
        
        
          0
        
        
          ].ToString());

                    }

                    
        
        
          catch
        
        
           { }

                }

            }

            
        
        
          using
        
         (StreamWriter sw = 
        
          new
        
         StreamWriter(
        
          "
        
        
          c:\\pp.txt
        
        
          "
        
        , 
        
          true
        
        
          ))

            {

                
        
        
          foreach
        
         (KeyValuePair<
        
          string
        
        , 
        
          string
        
        > child 
        
          in
        
        
           hostList)

                {

                    sw.WriteLine(Environment.NewLine 
        
        + 
        
          "
        
        
          name:
        
        
          "
        
         + child.Key + 
        
          "
        
        
            ip:
        
        
          "
        
         +
        
           child.Value);

                }

                sw.Flush();

                sw.Close();

            }

        }
        
      
View Code

以上把局域网的计算机以及IP保存到c盘

再根据ip地址获取mac地址

        
          public
        
        
          string
        
         GetMac(
        
          string
        
        
           IP)

        {

            
        
        
          string
        
         dirResults = 
        
          ""
        
        
          ;

            ProcessStartInfo psi 
        
        = 
        
          new
        
        
           ProcessStartInfo();

            Process proc 
        
        = 
        
          new
        
        
           Process();

            psi.FileName 
        
        = 
        
          "
        
        
          nbtstat
        
        
          "
        
        
          ;

            psi.RedirectStandardInput 
        
        = 
        
          false
        
        
          ;

            psi.RedirectStandardOutput 
        
        = 
        
          true
        
        
          ;

            psi.Arguments 
        
        = 
        
          "
        
        
          -A   
        
        
          "
        
         +
        
           IP;

            psi.UseShellExecute 
        
        = 
        
          false
        
        
          ;

            proc 
        
        =
        
           Process.Start(psi);

            dirResults 
        
        =
        
           proc.StandardOutput.ReadToEnd();

            proc.WaitForExit();

            dirResults 
        
        = dirResults.Replace(
        
          "
        
        
          \r
        
        
          "
        
        , 
        
          ""
        
        ).Replace(
        
          "
        
        
          \n
        
        
          "
        
        , 
        
          ""
        
        ).Replace(
        
          "
        
        
          \t
        
        
          "
        
        , 
        
          ""
        
        
          );

            Regex reg 
        
        = 
        
          new
        
         Regex(
        
          "
        
        
          Mac[   ]{0,}Address[   ]{0,}=[   ]{0,}(?<key>((.)*?))__MAC
        
        
          "
        
        , RegexOptions.IgnoreCase |
        
           RegexOptions.Compiled);

            Match mc 
        
        = reg.Match(dirResults + 
        
          "
        
        
          __MAC
        
        
          "
        
        
          );



            
        
        
          if
        
        
           (mc.Success)

            { 
        
        
          return
        
         mc.Groups[
        
          "
        
        
          key
        
        
          "
        
        
          ].Value; }

            
        
        
          else
        
        
          

            {

                reg 
        
        = 
        
          new
        
         Regex(
        
          "
        
        
          Host   not   found
        
        
          "
        
        , RegexOptions.IgnoreCase |
        
           RegexOptions.Compiled);

                mc 
        
        =
        
           reg.Match(dirResults);

                
        
        
          if
        
        
           (mc.Success)

                {

                    
        
        
          return
        
        
          "
        
        
          Host   not   found!
        
        
          "
        
        
          ;

                }

                
        
        
          else
        
        
          

                { 
        
        
          return
        
        
          ""
        
        
          ; }

            }

        }
        
      
View Code

需要的稍作更改即可使用

获取局域网计算机名以及IP以及mac地址


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论