1.  ManagementObjectSearcher类查询WMI数据库

此类在.NET System.Management命名空间。WMIWindows Management Instrumentation 视窗系统管理方法),是微软Web-Based Enterprise Management的实现,它是网络环境中访问系统信息的一个标准。从Windows 2000开始,微软就把含有系统软件、硬件信息和当前硬件状态的数据库包含在操作系统中了。C#语言可以直接查询该数据库,以判断管理软、硬件组件(包括网络设备)的状态。WMI数据库的Win32_NetWorkAdapterConfiguration表中包含了关于系统安装的网络设备的信息。表中字段如下:

字段                            说明

DefaultPGateWay          分配给设备的IP路由器地址数组

Description                   对网络设备的说明

DHCPEnabled               是否该设备动态地分配它的IP地址

DHCPServer                 服务器使用的DHCP,用来分配一个IP地址

DNSHostName             为分解主机名而使用的DNS主机

IPAddress                     分配到设置的IP地址数组

IPEnable                       是否该设备在网络上使用IP

IPSubnet                      设备上使用的IP子网地址数组

MACAddress                分配到网络设备的以太网MAC地址

代码示例:

获得Windows系统的IP网络信息的方法private void button1_Click(object sender, System.EventArgs e)
获得Windows系统的IP网络信息的方法
{
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                     
string sql = "SELECT * FROM Win32_NetWorkAdapterConfiguration WHERE IPEnabled = 'TRUE' ";
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                     ManagementObjectSearcher query 
= new ManagementObjectSearcher(sql);
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                     ManagementObjectCollection queryCollection 
= query.Get();
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                     
foreach(ManagementObject mo in queryCollection)
获得Windows系统的IP网络信息的方法
{
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            
string[] addresses = (string[])mo["IPAddress"];
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            
string[] subnets = (string[])mo["IPSubnet"];
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            
string[] defaultgateways = (string[])mo["DefaultIPGateway"];
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法 
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            
this.listBox1.Items.Add(string.Format("Network Card: {0}",mo["Description"]));
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            
this.listBox1.Items.Add(string.Format("              MAC Address: {0}",mo["MACAddress"]));
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            
foreach(string ipaddress in addresses)
获得Windows系统的IP网络信息的方法
{
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                                   
this.listBox1.Items.Add(string.Format("              IP Address: {0}",ipaddress));
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            }

获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            
foreach(string subnet in subnets)
获得Windows系统的IP网络信息的方法
{
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                                   
this.listBox1.Items.Add(string.Format("              Subnet Mask: {0}",subnet));
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            }

获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法 
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            
foreach(string defaultgateway in defaultgateways)
获得Windows系统的IP网络信息的方法
{
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                                   
this.listBox1.Items.Add(string.Format("              Gateway: {0}",defaultgateway));
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法 
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法                            }

获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法        }

获得Windows系统的IP网络信息的方法
获得Windows系统的IP网络信息的方法


2.  使用DNS

.NET System.Net命名空间中的Dns类提供得到网络信息的方法。

代码示例:


获得Windows系统的IP网络信息的方法        private void button1_Click(object sender, System.EventArgs e)
{
获得Windows系统的IP网络信息的方法            
string hostName = Dns.GetHostName();
获得Windows系统的IP网络信息的方法            
this.listBox1.Items.Add(string.Format("Local hostname: {0}",hostName));
获得Windows系统的IP网络信息的方法            IPHostEntry myself 
= Dns.GetHostByName(hostName);
获得Windows系统的IP网络信息的方法            
获得Windows系统的IP网络信息的方法            
foreach(IPAddress address in myself.AddressList)
{
获得Windows系统的IP网络信息的方法                
this.listBox1.Items.Add(string.Format("IP Address: {0}",address.ToString()));
获得Windows系统的IP网络信息的方法            }

获得Windows系统的IP网络信息的方法}

相关文章:

  • 2022-12-23
  • 2021-09-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2022-12-23
  • 2022-01-18
  • 2021-11-29
猜你喜欢
  • 2022-12-23
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2021-11-05
  • 2021-09-02
相关资源
相似解决方案