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: