PE_LOCAL_LIST_ONLY = 0x40000000, _TYPE_DOMAIN_ENUM = 0x80000000, _TYPE_ALL = 0xFFFFFFFF,
}
[StructLayout (LayoutKind.Sequential)] struct SERVER_INFO_101
{
[MarshalAs (UnmanagedType.U4)] uint sv101_platform_id;
[MarshalAs (UnmanagedType.LPWStr)] string sv101_name;
[MarshalAs (UnmanagedType.U4)] uint sv101_version_major;
[MarshalAs (UnmanagedType.U4)] uint sv101_version_minor;
[MarshalAs (UnmanagedType.U4)] uint sv101_type;
[MarshalAs (UnmanagedType.LPWStr)] string sv101_comment;
}
//
// оперціонная система
// enum PLATFORM_ID: uint
{_ID_DOS = 300, _ID_OS2 = 400, _ID_NT = 500, _ID_OSF = 600, _ID_VMS = 700,
}
//
// список помилок, що повертаються NetServerEnum
// enum NERR
{_Success = 0,// ​​Успех_ACCESS_DENIED = 5, _NOT_ENOUGH_MEMORY = 8, _BAD_NETPATH ​​= 53, _NETWORK_BUSY = 54, _INVALID_PARAMETER = 87, _INVALID_LEVEL = 124, _MORE_DATA = 234, _EXTENDED_ERROR = 1208, _NO_NETWORK = 1222 , _INVALID_HANDLE_STATE = 1609, _NO_BROWSER_SERVERS_FOUND = 6118,
} ArrayList GetServerList (SV_101_TYPES type)
{_INFO_101 si; pInfo = IntPtr.Zero; etriesread = 0; totalentries = 0; srvs = new ArrayList ();
{err = NetServerEnum (null, 101, out pInfo, -1, ref etriesread, ref totalentries, type, null, 0); ((err == NERR.NERR_Success | | err == NERR . ERROR_MORE_DATA) && pInfo! = IntPtr.Zero)
{ptr = pInfo.ToInt32 (); (int i = 0; i
{= (SERVER_INFO_101) Marshal.PtrToStructure (new IntPtr (ptr), typeof (SERVER_INFO_101));. Add (si.sv101_name) ;//додаємо ім'я
// сервер до списку + = Marshal.SizeOf (si);
}
}
} (Exception)
{
}
{//звільняємо виділену пам'ять
if (pInfo! = IntPtr.Zero)
{(pInfo);
}
} (srvs);
}
}
Функція ShowIPAddresses, призначена для визначення та виведення адрес DNS-серверів, основного шлюзу, IP. Реалізація функції ShowIPAddresses: void ShowIPAddresses (IPInterfaceProperties adapterProperties)
{dnsServers = adapterProperties.DnsAddresses; (dnsServers! = null)
{(IPAddress dns in dnsServers)
{. AppendText ("DNS Servers:" + dns.ToString () + "...