/// <summary> /// Returns the network card configuration of the specified NIC /// </summary> /// <param name="nic">Name of the NIC struct</param> /// <param name="ipAdresses">Array of IP</param> /// <param name="subnets">Array of subnet masks</param> /// <param name="gateways">Array of gateways</param> /// <param name="dnses">Array of DNS IP</param> public NetworkData GetNetworkData(NIC nic) { NetworkData wmidata = new NetworkData(); wmidata.IPaddresses = new List <string>(); wmidata.Subnets = new List <string>(); wmidata.Gateways = new List <string>(); wmidata.DNSes = new List <string>(); using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration")) { using (ManagementObjectCollection moc = mc.GetInstances()) { foreach (ManagementObject mo in moc) { // Make sure this is a IP enabled device. Not something like memory card or VM Ware if ((bool)mo["ipEnabled"]) { if (mo["SettingID"].Equals(nic.Guid)) { if (mo["IPAddress"] != null) { wmidata.IPaddresses = ((string[])mo["IPAddress"]).ToList(); } if (mo["IPSubnet"] != null) { wmidata.Subnets = ((string[])mo["IPSubnet"]).ToList(); } if (mo["DefaultIPGateway"] != null) { wmidata.Gateways = ((string[])mo["DefaultIPGateway"]).ToList(); } if (mo["DNSServerSearchOrder"] != null) { wmidata.DNSes = ((string[])mo["DNSServerSearchOrder"]).ToList(); } if (mo["DNSDomainSuffixSearchOrder"] != null) { wmidata.DNSSuffixes = ((string[])mo["DNSDomainSuffixSearchOrder"]).ToList(); } if (mo["DHCPEnabled"] != null) { wmidata.DHCP = ((bool)mo["DHCPEnabled"]); } } } } } } return(wmidata); }
private void nic_nicknames_combobox_SelectedIndexChanged(object sender, EventArgs e) { WMINetworkHelper wmi_network_helper = new WMINetworkHelper(); NetworkData network_data = new NetworkData(); NIC selected_nic = new NIC(); List <NIC> nic_names = wmi_network_helper.GetNICList(); foreach (NIC nic in nic_names) { if (nic.NicName.ToLower() == Convert.ToString(nic_nicknames_combobox.SelectedItem).ToLower()) { selected_nic.NicName = nic.NicName; selected_nic.Guid = nic.Guid; } } network_data = wmi_network_helper.GetNetworkData(selected_nic); if (network_data.IPaddresses.Count > 0) { current_ipv4_label.Text = network_data.IPaddresses[0]; if (network_data.IPaddresses.Count > 1) { current_ipv6_label.Text = network_data.IPaddresses[1]; } if (network_data.Subnets.Count > 0) { current_subnet_label.Text = network_data.Subnets[0]; } if (network_data.Gateways.Count > 0) { current_gateway_label.Text = network_data.Gateways[0]; } current_dns_label.Text = String.Join(" | ", network_data.DNSes.ToArray()); current_suffix_label.Text = String.Join(" | ", network_data.DNSSuffixes.ToArray()); current_proxy_label.Text = IEProxy.ProxyServer; if (network_data.DHCP) { current_static_ip_label.Text = "No"; } else { current_static_ip_label.Text = "Yes"; } if ((System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName).Length > 0) { current_workgroup_label.Text = ""; current_domain_label.Text = wmi_network_helper.GetCurrentWorkgroup(); } else { current_workgroup_label.Text = wmi_network_helper.GetCurrentWorkgroup(); current_domain_label.Text = ""; } } }