static private GetAdaptersInfo ( ) : System.Net.NetworkInformation.Win32_IP_ADAPTER_INFO[] | ||
return | System.Net.NetworkInformation.Win32_IP_ADAPTER_INFO[] |
private unsafe static Win32_IP_ADAPTER_INFO[] GetAdaptersInfo() { byte[] array = null; int num = 0; Win32NetworkInterface2.GetAdaptersInfo(array, ref num); array = new byte[num]; int adaptersInfo = Win32NetworkInterface2.GetAdaptersInfo(array, ref num); if (adaptersInfo != 0) { throw new NetworkInformationException(adaptersInfo); } List <Win32_IP_ADAPTER_INFO> list = new List <Win32_IP_ADAPTER_INFO>(); 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_INFO win32_IP_ADAPTER_INFO = new Win32_IP_ADAPTER_INFO(); Marshal.PtrToStructure(intPtr, win32_IP_ADAPTER_INFO); list.Add(win32_IP_ADAPTER_INFO); intPtr = win32_IP_ADAPTER_INFO.Next; } } return(list.ToArray()); }
public static Win32_IP_ADAPTER_INFO GetAdapterInfoByIndex(int index) { foreach (Win32_IP_ADAPTER_INFO win32_IP_ADAPTER_INFO in Win32NetworkInterface2.GetAdaptersInfo()) { if ((ulong)win32_IP_ADAPTER_INFO.Index == (ulong)((long)index)) { return(win32_IP_ADAPTER_INFO); } } return(null); }