zoukankan      html  css  js  c++  java
  • C# 本机信息与局域网信息的获取

    本机信息与局域网信息的获取,需要用到Management这个类,这个类的功能十分强大,可以实现的事情也很多,下面我来列举部分实现本机与局域网信息的例子。

    首先对项目添加System.Management引用,然后在代码上面输入using System.Management

    下面来看看如何取得本机信息:


            
    private static string ipAddress = "";
            
    static void Main(string[] args)
            {
                
    string macAddress = "";
                
                ManagementClass mc 
    = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection mac 
    = mc.GetInstances();            
                
    foreach (ManagementObject mo in mac)
                {
                    
    if ((bool)mo["IPEnabled"== true)
                    {
                        macAddress 
    += mo["MacAddress"].ToString();
                    }           
                }
                macAddress 
    = macAddress.Replace(':''-');

                IPAddress[] ipAddressList 
    = Dns.GetHostByName(Dns.GetHostName()).AddressList;
                
    for (int i = 0; i < ipAddressList.Length; i++)
                {
                    ipAddress 
    += ipAddressList[i].ToString();
                }
                Console.WriteLine(macAddress);   
    //MacAddress
                Console.WriteLine(ipAddress);   //IPAddress
                Console.WriteLine(Dns.GetHostName());   //HostName
                Console.WriteLine(Environment.UserName);   //UserName
                Console.WriteLine(Environment.UserDomainName);   //DomainName           
                Console.ReadLine();
            }


    上面有代码会输出如下信息:

    00-1E-C9-29-59-D7
    192.168.1.1
    NON-Alex
    Alex
    CompanyLan

    下面是通过IP进行判断,局域网里面的本网段主机:




     

           private static void HostsInit()
            {
                IPHostEntry host 
    = new IPHostEntry();
                
    string fristIP = ipAddress.Substring(0, ipAddress.LastIndexOf('.'+ 1);
                
    for (int i = 100; i <= 254; i++)
                {
                    Dns.BeginGetHostByName(fristIP 
    + i, new AsyncCallback(HostsInitCallback), host);
                }
            }       
            
    private static void HostsInitCallback(IAsyncResult ar)
            {
                
    try
                {
                    IPHostEntry host 
    = Dns.EndGetHostByName(ar);
                    IPHostEntry host1 
    = Dns.GetHostByAddress(host.AddressList[0]);

                    
    if (host1.HostName.Trim() != Dns.GetHostName())
                    {
                        Console.WriteLine(
    "列出局域网本网段的电脑主机名:");
                        Console.WriteLine(host1.HostName);
                        
    //在这里把文件神不知鬼不觉的复制给他们,
                        
    //这里我只实现了共享的或映射驱动器传送,                   
                        
    //如果你公司的电脑是组成一个域的,那么强制传送文件也是可以实现的(因为我们是公司IT先锋,总会知道域里超级用户与密码),
                        
    //不知那个园友来补充,无论怎样都是强制的传送给他们
                    }

                }
                
    catch { }
            }

    上面有代码会输出如下信息:
    NON-ITLi
    NON-CSLisa

    下载代码
    /Files/whtydn/ConsoleApplication1.rar

  • 相关阅读:
    违反了引用完整性约束。Dependent Role 具有多个具有不同值的主体。S级乌龙,自己制造的笑话
    用MVC5+EF6+WebApi 做一个小功能(二) 项目需求整理
    用MVC5+EF6+WebApi 做一个小功能(四) 项目分层功能以及文件夹命名
    用MVC5+EF6+WebApi 做一个小功能(三) 项目搭建
    ASP.NET WebApi总结之自定义权限验证
    用MVC5+EF6+WebApi 做一个小功能(一)开场挖坑,在线答题系统
    Javascript 535种方式!!!实现页面重载
    MVC页面移除HTTP Header中服务器信息
    为什么JavaScript要有null?(翻译)
    可编程渲染管线与着色器语言
  • 原文地址:https://www.cnblogs.com/whtydn/p/1535429.html
Copyright © 2011-2022 走看看