Red de conocimiento informático - Conocimiento de la instalación - Buscando programación en lenguaje C para obtener la dirección de la tarjeta de red

Buscando programación en lenguaje C para obtener la dirección de la tarjeta de red

Llame a API GetAdaptersInfo para obtener información del adaptador local

Nombre, dirección IP, máscara de subred, dirección MAC

Para cargar el archivo de biblioteca: Iphlpapi.lib

p>

#define WIN32_LEAN_AND_MEAN

#include lt;windows.hgt;

#include lt;winsock2.hgt;

#include ws2tcpip; .hgt;

#include lt;Iphlpapi.hgt;

#include lt;ntddndis.hgt;

#include lt;stringgt;

#include lt;stdio.hgt;

#include lt;conio.hgt;

#include lt;stdlib.hgt;

# definir MALLOC(x) HeapAlloc(GetProcessHeap(), 0, (x))

#define FREE(x) HeapFree(GetProcessHeap(), 0, (x))

int GetAdapters (nulo);

int main()

{

GetAdapters();

getch();

}

int GetAdapters(void)

{

PIP_ADAPTER_INFO pAdapterInfo

PIP_ADAPTER_INFO pAdapter = NULL

DWORD dwRetVal = 0;

UINT i;

char szbuffer[500];

char szmacbuffer[10]; char buffer[32];

ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);

pAdapterInfo = (IP_ADAPTER_INFO *) MALLOC(sizeof (IP_ADAPTER_INFO));

if (pAdapterInfo == NULL)

{

return 1;

}

if (GetAdaptersInfo(pAdapterInfo, amp; ulOutBufLen) = = ERROR_BUFFER_OVERFLOW)

{

FREE(pAdapterInfo);

pAdapterInfo = (IP_ADAPTER_INFO *) MALLOC(ulOutBufLen);

if ( pAdapterInfo == NULL)

{

return 1;

}

}

if (( dwRetVal = ObtenerInformación de Adaptadores(pAdapterIn

fo, amp;ulOutBufLen)) == NO_ERROR)

{

pAdapter = pAdapterInfo;

while (pAdapter != NULL)

{

//printf("\tComboIndex: \t5d\n", pAdapter-gt; ComboIndex);

//printf("\tNombre del adaptador: \ts\n ", pAdapter-gt; AdapterName);

printf ("Nombre del adaptador: s\n", pAdapter-gt; Descripción);

printf ("Tipo: ");

modificador (pAdapter-gt; Tipo)

{

caso MIB_IF_TYPE_OTHER: