GetAdaptersAddresses() static private méthode

static private GetAdaptersAddresses ( ) : System.Net.NetworkInformation.Win32_IP_ADAPTER_ADDRESSES[]
Résultat System.Net.NetworkInformation.Win32_IP_ADAPTER_ADDRESSES[]
        private unsafe static Win32_IP_ADAPTER_ADDRESSES[] GetAdaptersAddresses()
        {
            byte[] array = null;
            int    num   = 0;

            Win32NetworkInterface2.GetAdaptersAddresses(0u, 0u, IntPtr.Zero, array, ref num);
            array = new byte[num];
            int adaptersAddresses = Win32NetworkInterface2.GetAdaptersAddresses(0u, 0u, IntPtr.Zero, array, ref num);

            if (adaptersAddresses != 0)
            {
                throw new NetworkInformationException(adaptersAddresses);
            }
            List <Win32_IP_ADAPTER_ADDRESSES> list = new List <Win32_IP_ADAPTER_ADDRESSES>();

            fixed(byte *value = ref (array != null && array.Length != 0)?ref array[0] : ref *null)
            {
                IntPtr intPtr = (IntPtr)((void *)value);

                while (intPtr != IntPtr.Zero)
                {
                    Win32_IP_ADAPTER_ADDRESSES win32_IP_ADAPTER_ADDRESSES = new Win32_IP_ADAPTER_ADDRESSES();
                    Marshal.PtrToStructure(intPtr, win32_IP_ADAPTER_ADDRESSES);
                    list.Add(win32_IP_ADAPTER_ADDRESSES);
                    intPtr = win32_IP_ADAPTER_ADDRESSES.Next;
                }
            }

            return(list.ToArray());
        }
 public static NetworkInterface[] ImplGetAllNetworkInterfaces()
 {
     Win32_IP_ADAPTER_ADDRESSES[] adaptersAddresses = Win32NetworkInterface2.GetAdaptersAddresses();
     NetworkInterface[]           array             = new NetworkInterface[adaptersAddresses.Length];
     for (int i = 0; i < array.Length; i++)
     {
         array[i] = new Win32NetworkInterface2(adaptersAddresses[i]);
     }
     return(array);
 }