Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

MAC resuelto, pero...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: MAC resuelto, pero... Responder citando

he encontrado esta funcion y parace que va bién (al menos compila), pero... donde le digo la IP para que me resuelva la MAC?

AnsiString __fastcall TForm1::mjgetnicinfo()
{
IP_ADAPTER_INFO AdapterInfo[16];
AnsiString retv="";
unsigned int ii;
DWORD dwBufLen,dwStatus;
dwBufLen=sizeof(AdapterInfo);
dwStatus=GetAdaptersInfo(AdapterInfo,&dwBufLen);

if (dwStatus!=ERROR_SUCCESS)
return "**Could not Obtain NIC Info";

PIP_ADAPTER_INFO pAdapterInfo=AdapterInfo;

do
{
retv+="Name :"+AnsiString(pAdapterInfo->AdapterName)+"\r\nDescription:"+AnsiString(pAdapterInfo->Description)+"\r\nMAC :";
for (ii=0;ii<pAdapterInfo->AddressLength;++ii)
retv+=IntToHex(pAdapterInfo->Address[ii],2)+" ";
retv+="\r\n"; pAdapterInfo=pAdapterInfo->Next;
}
while (pAdapterInfo);

return retv;
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Label1->Caption=mjgetnicinfo();
}
Volver arriba
Mensaje    Asunto: Responder citando

He estado probando tu codigo y me da ciertos errores:

Donde defines: IP_ADAPTER_INFO AdapterInfo[16];

Haber si puedo probarlo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Gracias por responder.

incluye estas librerias...

#include <windows.h>
#include "iphlpapi.h"
//no olvidar incluir iphlapapi.lib en Project->Add to Project... y buscar...
Volver arriba
Mensaje    Asunto: Responder citando

Funciona perfectamente pero atencion a una cosilla:
El nombre del .lib esta que pusiste esta equivocado, sobra una "a" en realidad es como el del .h,
seria asi:
#include "iphlpapi.h"
incluir "iphlpapi.lib"

Otra pregunta.
Alguien sabe la compatibilidad de esto? funciona en todos los windows ? xp/2k etc?

Un saludo y gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Me autorespondo:

Windows XP, Windows 2000 Professional, Windows Me, or Windows 98
Windows Server 2003 or Windows 2000 Server

una funcion estupenda.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Otra función... Responder citando

hola de nuevo,
quiero retomar el tema de la MAC.
Veamos, en la función que puse al principio de este hilo:
¿Alguien sabe como especificar la IP de un pc remoto para saber la MAC?

en caso contario, en la siguiente función alguien sabría??????

#include <windows.h>
#include <winsock.h>
#include <wincon.h>


typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];



}ASTAT, * PASTAT;


int GetMAC(uchar *addr)
{
ASTAT Adapter;
NCB Ncb;
UCHAR uRetCode;
char NetName[50];
LANA_ENUM lenum;
int i;
int numfound=0;

memset( &Ncb, 0, sizeof(Ncb) );
Ncb.ncb_command = NCBENUM;
Ncb.ncb_buffer = (UCHAR *)&lenum;
Ncb.ncb_length = sizeof(lenum);
try
{
uRetCode = Netbios( &Ncb );
}
catch(...)
{
return(numfound);
}


for(i=0; i < lenum.length ;i++)
{
memset( &Ncb, 0, sizeof(Ncb) );
Ncb.ncb_command = NCBRESET;
Ncb.ncb_lana_num = lenum.lana[i];
try
{
uRetCode = Netbios( &Ncb );
}
catch(...)
{
return(numfound);
}
memset( &Ncb, 0, sizeof (Ncb) );
Ncb.ncb_command = NCBASTAT;
Ncb.ncb_lana_num = lenum.lana[i];


strcpy( Ncb.ncb_callname, "* " );
Ncb.ncb_buffer = (char *) &Adapter;
Ncb.ncb_length = sizeof(Adapter);


try
{
uRetCode = Netbios( &Ncb );
}
catch(...)
{
return(numfound);
}


if ( uRetCode == 0 )
{
if(++numfound == 1)
for(int i=0;i<6;i++)*addr++ = Adapter.adapt.adapter_address[­i];
}
}
return(numfound);


Es lo que yo quiero, saber la MAC de un pc remoto, es decir sabiendo la IP o DNS, averiguar la MAC.


GRACIAS
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.