public void GetNetAdapter()
{
try
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
try
{
if (Convert.ToBoolean(nic["IPEnabled"]) == true)
{
comboBox1.Items.Add(nic["Caption"].ToString());
}
}
catch (Exception)
{
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "IP地址更改工具", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
//如果有网卡,默认选中第一块网卡
if (comboBox1.Items.Count > 0)
{
comboBox1.SelectedIndex = 0;
GetNetInfor(comboBox1.SelectedItem.ToString());
}
}
public void GetNetInfor(string strNetAdapterName)
{
//获取选中的网卡的IP,网关,子网掩码,DNS,备用DNS信息
string strIP, strSubnet, strGateway, strDNS, strDNSBY;
strIP = "0.0.0.0";
strSubnet = "0.0.0.0";
strGateway = "0.0.0.0";
strDNS = "0.0.0.0";
strDNSBY = "0.0.0.0";
try
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
try
{
if (Convert.ToBoolean(nic["IPEnabled"]) == true)
{
if (nic["Caption"].ToString() == strNetAdapterName)
{
if ((nic["IPAddress"] as String[]).Length > 0 )
{
strIP = (nic["IPAddress"] as String[])[0];
}
if ((nic["IPSubnet"] as String[]).Length > 0 )
{
strSubnet = (nic["IPSubnet"] as String[])[0];
}
if ((nic["DefaultIPGateway"] as String[]).Length > 0 )
{
strGateway = (nic["DefaultIPGateway"] as String[])[0];
}
if ((nic["DNSServerSearchOrder"] as String[]).Length > 0 )
{
strDNS = (nic["DNSServerSearchOrder"] as String[])[0];
strDNSBY = (nic["DNSServerSearchOrder"] as String[])[1];
}
}
}
}
catch (Exception)
{
}
}
}
catch (Exception)
{
}
textBox1.Text = strIP;
textBox2.Text = strSubnet;
textBox3.Text = strGateway;
textBox4.Text = strDNS;
textBox5.Text = strDNSBY;
}
有的时候,在ManagementObjectCollection nics = mc.GetInstances();时产生异常。具体内容是“ManagementException 找不到”,输出窗口显示“在 System.Management.ManagementException 中第一次偶然出现的“System.Management.dll”类型的异常”不知道是什么原因。
{
try
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
try
{
if (Convert.ToBoolean(nic["IPEnabled"]) == true)
{
comboBox1.Items.Add(nic["Caption"].ToString());
}
}
catch (Exception)
{
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "IP地址更改工具", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
//如果有网卡,默认选中第一块网卡
if (comboBox1.Items.Count > 0)
{
comboBox1.SelectedIndex = 0;
GetNetInfor(comboBox1.SelectedItem.ToString());
}
}
public void GetNetInfor(string strNetAdapterName)
{
//获取选中的网卡的IP,网关,子网掩码,DNS,备用DNS信息
string strIP, strSubnet, strGateway, strDNS, strDNSBY;
strIP = "0.0.0.0";
strSubnet = "0.0.0.0";
strGateway = "0.0.0.0";
strDNS = "0.0.0.0";
strDNSBY = "0.0.0.0";
try
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
try
{
if (Convert.ToBoolean(nic["IPEnabled"]) == true)
{
if (nic["Caption"].ToString() == strNetAdapterName)
{
if ((nic["IPAddress"] as String[]).Length > 0 )
{
strIP = (nic["IPAddress"] as String[])[0];
}
if ((nic["IPSubnet"] as String[]).Length > 0 )
{
strSubnet = (nic["IPSubnet"] as String[])[0];
}
if ((nic["DefaultIPGateway"] as String[]).Length > 0 )
{
strGateway = (nic["DefaultIPGateway"] as String[])[0];
}
if ((nic["DNSServerSearchOrder"] as String[]).Length > 0 )
{
strDNS = (nic["DNSServerSearchOrder"] as String[])[0];
strDNSBY = (nic["DNSServerSearchOrder"] as String[])[1];
}
}
}
}
catch (Exception)
{
}
}
}
catch (Exception)
{
}
textBox1.Text = strIP;
textBox2.Text = strSubnet;
textBox3.Text = strGateway;
textBox4.Text = strDNS;
textBox5.Text = strDNSBY;
}
有的时候,在ManagementObjectCollection nics = mc.GetInstances();时产生异常。具体内容是“ManagementException 找不到”,输出窗口显示“在 System.Management.ManagementException 中第一次偶然出现的“System.Management.dll”类型的异常”不知道是什么原因。
1万+

被折叠的 条评论
为什么被折叠?



