zoukankan      html  css  js  c++  java
  • 网络编程获取计算机信息(DNS、WMI、Environment)

    计算机名称和IP 地址对于运行TCP/IP 协议的网络主机来说,是两个最重要的标识。IP地址由4个十进制的数字号码所组成,而每一个号码的值介于0~255之间,它虽然解决了网络上计算机的识别问题,但是IP地址不容易记,因此域名系统(DNS)被开发出来,它专门用于将IP地址转换成有意义的文字,以方便识别记忆。

    在.net中,提供了DNS、WMI、Envrioment等方法来获取本地或远程计算机的信息。

    1、Envrioment类

    此类提供有关当前环境和平台的信息以及操作它们的方法。

    NetBIOS 是一种非常古老的网络协议,它是为了和IBM NetBIOS 兼容而引进的。NetBIOS 是建立在BIOS 基础之上,并对之进行了扩展,使之能够支持网络上的I/O 调用。

    通过NetBIOS 来获取本地计算机名称要使用到System 命名空间中的Environment 类。通过NetBIOS 获取本地计算机名称使用的是Environment 类的MachineName 属性。Environment类还提供了一些的属性用以获取和计算机相关的其他重要信息。

    2、DNS类

    Dns类主要是从域名系统(DNS)中检索关于特定主机的信息,提供简单的域名解析功能。位于System.Net命名空间下。

    3、WMI规范

    WMI对应的命名空间提供对大量管理信息和管理事件集合的访问,这些信息和事件是与根据 Windows 管理规范 (WMI) 结构对系统、设备和应用程序设置检测点有关的。应用程序和服务可以可以查询感兴趣的管理信息(例如在磁盘上还剩多少可用空间、当前 CPU 利用率是多少、某一应用程序正连接到哪一数据库等等)。

    msdn:http://msdn.microsoft.com/zh-cn/library/system.management.aspx

    1、本地计算机和主机名

    在C#提供的Dns类,可以轻松的取得主机名和IP地址.
    示例:
    string strHostName = Dns.GetHostName(); //得到本机的主机名
    IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP
    string strAddr = ipEntry.AddressList[0].ToString(); //第一个网卡地址

    MAC地址:使用ManagementClass。

    2、远程计算机和主机名

    获取远程主机的MAC地址时,需要借用API函数SendARP.该函数使用ARP协议,向目的主机发送ARP包,利用返回并存储在高速缓存中的IP和MAC地址对,从而获取远程主机的MAC地址.
    参考:http://hi.baidu.com/ooofcu/blog/item/6b7fba99f4f40a0f6f068c3c.html

    3、WMI的部分应用

    如:

    Code    

        }
            
    /// <summary>
            
    /// NetWorkCard Mac
            
    /// </summary>
            
    /// <returns></returns>
            private string GetNetWorkCard()
            {
                
    string str = null;
                ManagementClass mc 
    = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection moc 
    = mc.GetInstances();
                
    foreach (ManagementObject mo in moc)
                {
                    
    if ((bool)mo["IPEnabled"== true)
                        str 
    = mo["MacAddress"].ToString();
                    mo.Dispose();
                } 
                
    return str;
            }

    其他:

    http://msdn.microsoft.com/en-us/library/aa394084(VS.85).aspx

    http://www.opent.cn/?action=show&id=323

    http://school.cfan.com.cn/pro/c/2006-08-08/1154967075d11871.shtml

    http://blog.csdn.net/ssm1226/archive/2005/01/19/259887.aspx

     

  • 相关阅读:
    面试题 Comparable、Comparator 比较
    Longest Palindromic Substring
    Permutation Sequence
    Spring Boot_打造企业级微信点餐系统_汇总贴
    小D课堂
    小D课堂
    小D课堂
    小D课堂
    小D课堂
    小D课堂
  • 原文地址:https://www.cnblogs.com/jyz/p/1358319.html
Copyright © 2011-2022 走看看