• Jueves 28 de Marzo de 2024, 11:52

Autor Tema:  Conocer La Mac Address De Tu Pc  (Leído 8162 veces)

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Conocer La Mac Address De Tu Pc
« en: Sábado 6 de Diciembre de 2003, 03:04 »
0
Hola, aqui esta el codigo:

Código: Text
  1.  
  2. #include <windows.h>
  3. #include <iostream>
  4. #include <conio.h>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     cout << "direccion MAC es: ";
  11.  
  12.     GUID uuid;
  13.     CoCreateGuid(&uuid);
  14.     char mac_addr[18];
  15.     sprintf(mac_addr,"%02X:%02X:%02X:%02X:%02X:%02X",
  16.             uuid.Data4[2],uuid.Data4[3],uuid.Data4[4],
  17.             uuid.Data4[5],uuid.Data4[6],uuid.Data4[7]);
  18.     cout << mac_addr << endl;
  19.     getch();
  20.     return 0;
  21. }
  22.  
  23.  
  24.  
  25.  

eso para C++, si se quisiera aplicar a un programa hecho en C++ Builder seria asi:

Código: Text
  1.  
  2. //---------------------------------------------------------------------------
  3. #include <vcl.h>
  4. #include <iostream.h>
  5. #include <conio.h>
  6. #pragma hdrstop
  7.  
  8. #include "Unit1.h"
  9. //---------------------------------------------------------------------------
  10. #pragma package(smart_init)
  11. #pragma resource "*.dfm"
  12. TForm1 *Form1;
  13. //---------------------------------------------------------------------------
  14. __fastcall TForm1::TForm1(TComponent* Owner)
  15.         : TForm(Owner)
  16. {
  17. }
  18. //---------------------------------------------------------------------------
  19.  
  20. void __fastcall TForm1::Button1Click(TObject *Sender)
  21. {
  22.    using namespace std;
  23.    GUID uuid;
  24.    CoCreateGuid(&uuid);
  25.    char mac_addr[18];
  26.     //obtenemos los datos y los almacenamos en mac_Addr
  27.    sprintf(mac_addr,"%02X:%02X:%02X:%02X:%02X:%02X",
  28.            uuid.Data4[2],uuid.Data4[3],uuid.Data4[4],
  29.            uuid.Data4[5],uuid.Data4[6],uuid.Data4[7]);
  30.   //como mac_addr es char[], hacemos un cast a String
  31.    Edit1->Text= String(mac_addr);
  32.  
  33.   //y listo !!!
  34. }
  35. //---------------------------------------------------------------------------
  36.  
  37.  
  38.  

Asi de simple....


Suerte!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

Iluvatarm

  • Miembro activo
  • **
  • Mensajes: 38
    • Ver Perfil
Re: Conocer La Mac Address De Tu Pc
« Respuesta #1 en: Lunes 29 de Noviembre de 2004, 16:31 »
0
Hola,
he probado el código para C++ y la verdad es que no me funciona: Efectivamente da un identificador de 128 bits (GUID), pero en cada ejecución da uno distinto... al menos en mi caso, VC++ 6.0...

de todas maneras intentaré investigar si encuentro alguna cosilla.

hasta luego!

 :)

IluvatarM

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Conocer La Mac Address De Tu Pc
« Respuesta #2 en: Jueves 24 de Febrero de 2005, 00:59 »
0
Codigo correcto, mis disculpas: :P

Código: Text
  1. void GetMac(TStrings* pslStrings)
  2. {
  3.  int ilRetVal = 0;  
  4.  NCB stNetCtrlBlock;
  5.  LPVOID pASTAT;
  6.  ASTAT stAdapterStatus;  
  7.  LANA_ENUM stLanEnum;
  8.  
  9.  
  10.  if(pslStrings != NULL) pslStrings->Clear();
  11.  
  12.  memset(&stNetCtrlBlock, 0, sizeof(stNetCtrlBlock));
  13.  stNetCtrlBlock.ncb_command = NCBENUM;
  14.  stNetCtrlBlock.ncb_buffer = (UCHAR *)&stLanEnum;
  15.  stNetCtrlBlock.ncb_length = sizeof(stLanEnum);
  16.  Netbios(&stNetCtrlBlock);
  17.  ilRetVal = stLanEnum.length;
  18.  
  19.  if(pslStrings != NULL)
  20.  {
  21.    for(int ilAdapter=0; ilAdapter < ilRetVal; ilAdapter++)
  22.    {
  23.      memset(&stNetCtrlBlock, 0, sizeof(stNetCtrlBlock));
  24.      stNetCtrlBlock.ncb_command = NCBRESET;
  25.      stNetCtrlBlock.ncb_lana_num =   stLanEnum.lana[ilAdapter];
  26.      Netbios(&stNetCtrlBlock);
  27.      memset( &stNetCtrlBlock, 0, sizeof(stNetCtrlBlock) );
  28.      stNetCtrlBlock.ncb_command = NCBASTAT;
  29.      stNetCtrlBlock.ncb_lana_num =   stLanEnum.lana[ilAdapter];
  30.      strcpy(stNetCtrlBlock.ncb_callname,"*               ");
  31.      stNetCtrlBlock.ncb_length = sizeof(stAdapterStatus);
  32.  
  33.      pASTAT=HeapAlloc(GetProcessHeap(),HEAP_GENERATE_EXCEPTIONS|
  34.        HEAP_ZERO_MEMORY, stNetCtrlBlock.ncb_length);
  35.  
  36.      if(pASTAT != NULL)
  37.      {
  38.        stNetCtrlBlock.ncb_buffer=(UCHAR *)pASTAT;
  39.        Netbios(&stNetCtrlBlock);
  40.        CopyMemory(&stAdapterStatus,stNetCtrlBlock.ncb_buffer,
  41.          sizeof(stAdapterStatus));
  42.        AnsiString slMacAddress;
  43.        for(int i =0; i < 6; i++)
  44.        {
  45.          slMacAddress +=IntToHex(stAdapterStatus.
  46.            adapt.adapter_address[i],2);
  47.          if(i<5) slMacAddress+="-";
  48.        }
  49.        HeapFree(GetProcessHeap(),0,pASTAT);
  50.        pslStrings->Add(slMacAddress);
  51.      }
  52.      else ilRetVal = 0;
  53.    }
  54.  }
  55.  
  56.  
  57.  
  58. }
  59.  

Las direcciones MAC de todas las Tarjetas de red presentes en el pc quedan en la lista de Strings recibida por parametros...

Saludos...
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

weps84

  • Miembro MUY activo
  • ***
  • Mensajes: 138
    • Ver Perfil
Re: Conocer La Mac Address De Tu Pc
« Respuesta #3 en: Sábado 4 de Agosto de 2007, 14:10 »
0
Buenos dias, estuve probando el ultimo codigo pero me aperece un error, lo estoy ejecutando en builder c++ 6 no se si eso tenga algo que ver me dice:

[C++ Error] mca2.cpp(33): E2451 Undefined symbol 'ASTAT'

entonces no encuentro por ningun lado la solucion no se si es que me falta una libreria y no lo se

agradezco su ayuda

 :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Conocer La Mac Address De Tu Pc
« Respuesta #4 en: Sábado 4 de Agosto de 2007, 14:38 »
0
Cita de: "weps84"
Buenos dias, estuve probando el ultimo codigo pero me aperece un error, lo estoy ejecutando en builder c++ 6 no se si eso tenga algo que ver me dice:

[C++ Error] mca2.cpp(33): E2451 Undefined symbol 'ASTAT'

entonces no encuentro por ningun lado la solucion no se si es que me falta una libreria y no lo se

agradezco su ayuda

 :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:  :lightsabre:
NETBIOS ASTAT en Google.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

weps84

  • Miembro MUY activo
  • ***
  • Mensajes: 138
    • Ver Perfil
Re: Conocer La Mac Address De Tu Pc
« Respuesta #5 en: Sábado 4 de Agosto de 2007, 19:53 »
0
Esto es lo que me hacia falta:


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

ronal120

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Conocer La Mac Address De Tu Pc
« Respuesta #6 en: Lunes 12 de Mayo de 2008, 03:06 »
0
Muchas gracias.

EL_URU

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Conocer La Mac Address De Tu Pc
« Respuesta #7 en: Domingo 18 de Octubre de 2009, 17:32 »
0
Cita de: "ronal120"
Muchas gracias.
hola soy nuevo en este tema.
por favor me podrías enviar el código que funciona.
muchas gracias.

EL_URU

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Conocer La Mac Address De Tu Pc
« Respuesta #8 en: Sábado 14 de Noviembre de 2009, 04:25 »
0
Cita de: "weps84"
Esto es lo que me hacia falta:


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

hola por favor necesitaría que me den una mano con este tema, no puedo hacer que funcione.
Gracias.