网络编程-获取计算机信息(DNS、WMI、Environment)
2008-12-19 14:15
441 查看
计算机名称和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>
/// CPUID
/// </summary>
/// <returns></returns>
private string GetCPU()
{
string str = null;
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
return str;
}
/// <summary>
/// HardDiskID
/// </summary>
/// <returns></returns>
private string GetHardDisk()
{
string str=null;
ManagementClass cimobject = new ManagementClass("Win32_PhysicalMedia");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
str = mo.Properties["SerialNumber"].Value.ToString();
}
return str;
}
/// <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
在.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>
/// CPUID
/// </summary>
/// <returns></returns>
private string GetCPU()
{
string str = null;
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
return str;
}
/// <summary>
/// HardDiskID
/// </summary>
/// <returns></returns>
private string GetHardDisk()
{
string str=null;
ManagementClass cimobject = new ManagementClass("Win32_PhysicalMedia");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
str = mo.Properties["SerialNumber"].Value.ToString();
}
return str;
}
/// <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
相关文章推荐
- 使用WMI控制网络适配器的类(获取所有启用的网络适配器及其信息。设置IP、子网掩码,网关,DNS)
- MASM32编程通过WMI获取BIOS、主板、硬盘、CPU、网卡的信息
- 《visual c#.net网络核心编程》学习笔记系列之:获取本地主机信息
- 27-网络编程-22-网络编程(模拟一个浏览器获取信息)
- MASM32编程通过WMI获取杀毒软件信息
- [Win32]本地计算机网络信息的获取
- libpcap 编程一(安装与获取网络接口信息)
- Visual C#中用WMI获取远程计算机信息
- Java学习笔记之网络编程基础-根据域名自动到DNS上获取IP地址
- Visual C#中用WMI获取远程计算机信息
- 本地计算机网络信息的获取
- C# 网络编程之通过豆瓣API获取书籍信息
- [Win32]本地计算机网络信息的获取
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十一节 获取当前计算机的IP信息
- Windows Socket 网络编程(五) —— 获取本地主机信息
- Java基础知识强化之网络编程笔记21:Android网络通信之 Android常用OAuth登录(获取令牌信息)
- C# System.Net.NetworkInformation 命名空间学习之NetworkInterface 类获取IP,DNS,Gateway,Mask, MAC等网络相关信息
- PHP 通过WMI来实现获取客户端计算机硬件及系统信息:
- Python网络编程小例子:使用python获取网站域名信息
- Linux编程获取网络信息总结