Для проверки этого примера, так как у меня один адрес LANA (одна сетевая карта, один протокол NetBEUI) я поменял адрес LANA.
Для получения списка номеров LANA есть команда NCBENUM. При вызове этой команды в параметр NCB.ncb_buffer необходимо передать структуру LANA_ENUM. Вот как она выглядит:
typedef struct _LANA_ENUM { UCHAR length; UCHAR lana[MAX_LANA]; } LANA_ENUM;
Объявим её в программе:
LANA_ENUM lan_num;
Передадим параметры:
ncb.ncb_command = NCBENUM; ncb.ncb_buffer = (unsigned char *) &lan_num; ncb.ncb_length = sizeof(lan_num);
Выполнить команду NetBios:
uRetCode = Netbios((NCB*) &ncb;
Проверить код возврата:
if (uRetCode != 0) { cout << "error NCBENUM " << endl; exit(1); }
Перечислить все LANA номера:
for (int x=0;x < lan_num.length; x++) { printf( "The LANA Number is: %03u",lan_num.lana[x]); cout << endl; }
Собирайте и запускайте проект. В результате работы на экране Вы увидите число 123.
Команда NCBENUM позволяет получить список чисел LANA.