Advtools.AdvInterceptor.Network.GetIpsByWmi C# (CSharp) Method

GetIpsByWmi() public static method

public static GetIpsByWmi ( ) : System.Net.IPAddress[]
return System.Net.IPAddress[]
        public static IPAddress[] GetIpsByWmi()
        {
            List<IPAddress> ips = new List<IPAddress>();

            using(ManagementObjectSearcher adapterSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter where NetConnectionStatus=2"))
            {
                foreach(ManagementObject adapter in adapterSearcher.Get())
                {
                    int index = Convert.ToInt32(adapter["index"]);
                    string query = string.Format("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index={0} AND IPEnabled='true'", index);
                    using(ManagementObjectSearcher confSearcher = new ManagementObjectSearcher(query))
                    {
                        foreach(ManagementObject config in confSearcher.Get())
                        {
                            // List all IP addresses of the current network interface
                            string[] addressList = (string[])config["IPAddress"];

                            foreach(string address in addressList)
                                ips.Add(IPAddress.Parse(address));
                        }
                    }
                }
                return ips.ToArray();
            }
        }