none
Маска и IP RRS feed

  • Вопрос

  • Как получить маску подсети и IP адрес конкретного подключения(смотрел System.Net.NetworkInformation.NetworkInterface пока ничего не нашёл), может кто подскажет? 
    25 марта 2010 г. 11:19

Ответы

  • Можно воспользоваться WMI

    http://www.microsoft.com/downloads/details.aspx?FamilyID=2CC30A64-EA15-4661-8DA4-55BBC145C30E&displayLang=en

    Маска подсети :

    using System;
    using System.Management;
    using System.Windows.Forms;
    
    namespace WMISample
    {
        public class MyWMIQuery
        {
            public static void Main()
            {
                try
                {
                    ManagementObjectSearcher searcher = 
                        new ManagementObjectSearcher("root\\CIMV2", 
                        "SELECT * FROM Win32_NetworkAdapterConfiguration"); 
    
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        Console.WriteLine("-----------------------------------");
                        Console.WriteLine("Win32_NetworkAdapterConfiguration instance");
                        Console.WriteLine("-----------------------------------");
    
                        if(queryObj["IPSubnet"] == null)
                            Console.WriteLine("IPSubnet: {0}", queryObj["IPSubnet"]);
                        else
                        {
                            String[] arrIPSubnet = (String[])(queryObj["IPSubnet"]);
                            foreach (String arrValue in arrIPSubnet)
                            {
                                Console.WriteLine("IPSubnet: {0}", arrValue);
                            }
                        }
                    }
                }
                catch (ManagementException e)
                {
                    MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
                }
            }
        }
    }

     

    IP адреса:

    using System;
    using System.Management;
    using System.Windows.Forms;
    
    namespace WMISample
    {
        public class MyWMIQuery
        {
            public static void Main()
            {
                try
                {
                    ManagementObjectSearcher searcher = 
                        new ManagementObjectSearcher("root\\CIMV2", 
                        "SELECT * FROM Win32_NetworkAdapterConfiguration"); 
    
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        Console.WriteLine("-----------------------------------");
                        Console.WriteLine("Win32_NetworkAdapterConfiguration instance");
                        Console.WriteLine("-----------------------------------");
    
                        if(queryObj["IPAddress"] == null)
                            Console.WriteLine("IPAddress: {0}", queryObj["IPAddress"]);
                        else
                        {
                            String[] arrIPAddress = (String[])(queryObj["IPAddress"]);
                            foreach (String arrValue in arrIPAddress)
                            {
                                Console.WriteLine("IPAddress: {0}", arrValue);
                            }
                        }
                    }
                }
                catch (ManagementException e)
                {
                    MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
                }
            }
        }
    }

     

     

     

    • Помечено в качестве ответа I.VorontsovModerator 26 марта 2010 г. 6:53
    25 марта 2010 г. 21:47