Red de conocimiento informático - Material del sitio web - Cómo obtener la IP de la computadora, el nombre de host, la MAC de la puerta de enlace, la máscara de subred, etc. en MFC

Cómo obtener la IP de la computadora, el nombre de host, la MAC de la puerta de enlace, la máscara de subred, etc. en MFC

Puerta de enlace:

bool CNetView::GetAdapterInfo(CString & strGwIp)

{

PIP_ADAPTER_INFO pAdapterInfo

< p; > PIP_ADAPTER_INFO pAdapter = NULL;

DWORD dwRetVal = 0;

pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO)

unsigned long ulOutBufLen = ); sizeof(IP_ADAPTER_INFO);

// Realiza una llamada inicial a GetAdaptersInfo para obtener

// el tamaño necesario en la variable ulOutBufLen

if (GetAdaptersInfo( pAdapterInfo) , & ulOutBufLen) == ERROR_BUFFER_OVERFLOW)

{

free(pAdapterInfo);

pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen

);

p>

}

if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, amp; ulOutBufLen)) == NO_ERROR)

{

pAdapter = pAdapterInfo;

while (pAdapter)

{

TRACE("\tNombre del Adaptador: \ts\n", pAdapter-gt; Nombre del Adaptador); /p>

TRACE("\tAdapter Desc: \ts\n", pAdapter-gt; Descripción);

TRACE("\tAdapter Addr: \tld\n", pAdapter-gt; Dirección);

TRACE("\tIP Dirección: \ts\n", pAdapter-gt; IpAddressList.IpAddress.String

TRACE("\tIP Máscara: \ts); \n" , pAdapter-gt;IpAddressList.IpMask.String);

TRACE("

\tGateway: \ts\n", pAdapter-gt; GatewayList.IpAddress.String);

strGwIp.Format("Gateway[s]", pAdapter-gt; GatewayList.IpAddress.String);

//AfxMessageBox(strGwIp);

TRACE("\t***\n");

if (pAdapter-gt;DhcpEnabled)

p>

{

TRACE("\tDHCP habilitado: Sí\n");

TRACE("\t\tServidor DHCP: \ts\ n", pAdapter- gt;DhcpServer.IpAddress.String);

TRACE("\tArrendamiento obtenido: ld\n", pAdapter-gt;ArrendamientoObtenido);

}

else

TRACE("\tDHCP habilitado: No\n");

if (pAdapter-gt;HaveWins)

{

TRACE("\tHave Wins: Sí\n");

TRACE("\t\tPrimary Wins Server: \ts\n", pAdapter-gt; PrimaryWinsServer.IpAddress. String);

p>

TRACE("\t\tServidor Secundario Wins: \ts\n", pAdapter-gt; SecondaryWinsServer.IpAddress.String

}

else

else

p>

TRACE("\tHave Wins: No\n"); pAdapter-gt; Siguiente;

}

}

else

{

TRACE("Llamar a GetAdaptersInfo falló.\n");

devuelve falso;

}

gratis(pAdapterInfo);

devuelve verdadero;

}

// Dirección IP

CString CGetdata::GetlocalIPAddress()

{

WORD wVersionRequested

WSADATA wsaData

Dirección CString

char szHostname[128]

wVersionRequested=MAKEWORD(2,0);

if(WSAStartup(wVersionRequested,&wsaData)==0)

{

if(gethostname(szHostname, 128)==0)

{

struct hostent *pHost

int

pHost=gethostbyname(szHostname);

for(i=0;pHost!=NULL amp;amp; pHost-gt;h_addr_list[i]!=NULL;i)

{

int j;

for(j=0;jlt;pHost-gt;h_length;j)

{

CString addr ;

if(jgt; 0)

Dirección =".";

addr.Format("u", (unsigned int)(( unsigned char *)pHost-gt; h_addr_list[i])[j]);

Dirección =addr; }

WSACleanup();

}

dirección de retorno

}