 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Perico Invitado
|
Publicado: Mar 07 Jun, 2005 9:33 pm Asunto: MAC resuelto, pero... |
|
|
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 |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Mie 08 Jun, 2005 7:55 pm Asunto: |
|
|
He estado probando tu codigo y me da ciertos errores:
Donde defines: IP_ADAPTER_INFO AdapterInfo[16];
Haber si puedo probarlo. |
|
| Volver arriba |
|
 |
Perico Invitado
|
Publicado: Jue 09 Jun, 2005 8:00 am Asunto: |
|
|
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 |
|
 |
mopa Cmdr

Registrado: 29 Jun 2004Mensajes: 145
|
Publicado: Mie 13 Jul, 2005 10:28 am Asunto: |
|
|
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 |
|
 |
mopa Cmdr

Registrado: 29 Jun 2004Mensajes: 145
|
Publicado: Mie 13 Jul, 2005 10:57 am Asunto: |
|
|
Me autorespondo:
Windows XP, Windows 2000 Professional, Windows Me, or Windows 98
Windows Server 2003 or Windows 2000 Server
una funcion estupenda. |
|
| Volver arriba |
|
 |
Perico Invitado
|
Publicado: Sab 13 Ago, 2005 10:05 pm Asunto: Otra función... |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|