Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» MAC-адрес сетевого адаптера

Автор: Tropin
Дата сообщения: 31.10.2003 10:14
Как определить MAC-адрес конкретной сетевухи программно и наиболее корректно?
Есть две сетевушки, знаю их идентификаторы, "кого" спросить об их параметрах???
И если можно, то с примером (Delphi или C :)...
Не предлагайте использовать NetBIOS или подобные приблуды, кому интересно дельфевые примеры есть тут, но в моем случае это не прокатывает...
Автор: Bloody_Nokia_Adept
Дата сообщения: 31.10.2003 11:06
Tropin
Вот функция

Цитата:
GetAdaptersInfo
The GetAdaptersInfo function retrieves adapter information for the local computer.

DWORD GetAdaptersInfo(
PIP_ADAPTER_INFO pAdapterInfo, // buffer to receive data
PULONG pOutBufLen // size of data returned
);

Parameters
pAdapterInfo [out] Pointer to a buffer that, , receives a linked list of IP_ADAPTER_INFO structures.
pOutBufLen [in] Pointer to a ULONG variable that specifies the size of the buffer pointed to by the pAdapterInfo parameter. If this size is insufficient to hold the adapter information, GetAdaptersInfo fills in this variable with the required size, and returns an error code of ERROR_BUFFER_OVERFLOW.

Return Values
If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is one of the following error codes.

Value Meaning
ERROR_BUFFER_OVERFLOW The buffer size indicated by the pOutBufLen parameter is too small to hold the adapter information. The pOutBufLen parameter points to the required size.
ERROR_INVALID_PARAMETER The pOutBufLen parameter is NULL, or the calling process does not have read/write access to the memory pointed to by pOutBufLen, or the calling process does not have write access to the memory pointed to by the pAdapterInfo parameter.
ERROR_NO_DATA No adapter information exists for the local computer.
ERROR_NOT_SUPPORTED GetAdaptersInfo is not supported by the operating system running on the local computer.
Other If the function fails, use FormatMessage to obtain the message string for the returned error.

Requirements
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Requires Windows 98.
Header: Declared in Iphlpapi.h.
Library: Use Iphlpapi.lib.

See Also
IP_ADAPTER_INFO

А вот пример ее использования:

Цитата:
PIP_ADAPTER_INFO pInf;
LPBYTE pbBuf;
ULONG ulSize = 0;

GetAdaptersInfo(NULL, &ulSize);
pbBuf = new BYTE[ulSize];
GetAdaptersInfo((PIP_ADAPTER_INFO)pbBuf, &ulSize);
pInf = (PIP_ADAPTER_INFO)pbBuf;
do
{
printf("%s\n", pInfo->Description);
printf("MAC: %02X %02X %02X %02X %02X %02X\n",
pInf->Address[0], pInf->Address[1], pInf->Address[2],
pInf->Address[3], pInf->Address[4], pInf->Address[5]);
pInf = pInf->Next;
} while (pInf != NULL);
delete [] pbBuffer;


Добавлено
Да! И еще...
Вот полезная статья по теме:
Three ways to get your MAC address
Автор: Tropin
Дата сообщения: 31.10.2003 13:26
Bloody_Nokia_Adept
Спасибо, то что надо!

Страницы: 1

Предыдущая тема: Необходимо консольную утилиту для Windows


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.