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); }