Avatar billede andersb Nybegynder
06. maj 2000 - 17:24 Der er 3 kommentarer og
1 løsning

MAC-adresse og NetBIOS-navn

Hvordan kan man læse maskinens MAC-adresse, dvs. adressen på netkortet [må ikke forveksles med IP-adressen]fra et C/C++ program?

Hvordan kan man læse og sætte maskinens NetBIOS-navn fra et C/C++ program?

Der må da være et systemkald, der kan gøre det!

Det er også OK, hvis I ved hvordan man laver ovenstående fra et Java-program.

- Anders
Avatar billede 127144146281 Nybegynder
06. maj 2000 - 18:01 #1
har set det på et vb site (dog med api kald til selve oplysningen så burde ikke være helt ved siden af i c++/java)

http://www.mvps.org/vbnet
Avatar billede 127144146281 Nybegynder
06. maj 2000 - 18:03 #2
Avatar billede 127144146281 Nybegynder
06. maj 2000 - 18:03 #3
og da det er fra netbios den grabber den burde det andet da også være til at lave
Avatar billede privaten Nybegynder
15. maj 2000 - 12:41 #4
Denne kode burde kunne gøre det (i VC++)



  #include <windows.h>
  #include <wincon.h>
  #include <stdlib.h>
  #include <stdio.h>
  #include <time.h>
  #include <NB30.h>

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

  ASTAT Adapter;

  void main (void)
  {
      NCB Ncb;
      UCHAR uRetCode;
      char NetName[50];
      LANA_ENUM  lenum;
      int      i;

      memset( &Ncb, 0, sizeof(Ncb) );
      Ncb.ncb_command = NCBENUM;
      Ncb.ncb_buffer = (UCHAR *)&lenum;
      Ncb.ncb_length = sizeof(lenum);
      uRetCode = Netbios( &Ncb );
      printf( "The NCBENUM return code is: 0x%x \n", uRetCode );

      for(i=0; i < lenum.length ;i++)
      {
          memset( &Ncb, 0, sizeof(Ncb) );
          Ncb.ncb_command = NCBRESET;
          Ncb.ncb_lana_num = lenum.lana[i];

          uRetCode = Netbios( &Ncb );
          printf( "The NCBRESET on LANA %d return code is: 0x%x \n",
                  lenum.lana[i], uRetCode );

          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);

          uRetCode = Netbios( &Ncb );
          printf( "The NCBASTAT on LANA %d return code is: 0x%x \n",
                  lenum.lana[i], uRetCode );
          if ( uRetCode == 0 )
          {
            printf( "The Ethernet Number on LANA %d is:
                    %02x%02x%02x%02x%02x%02x\n",
            lenum.lana[i],
                  Adapter.adapt.adapter_address[0],
                  Adapter.adapt.adapter_address[1],
                  Adapter.adapt.adapter_address[2],
                  Adapter.adapt.adapter_address[3],
                  Adapter.adapt.adapter_address[4],
                  Adapter.adapt.adapter_address[5] );
          }
      }
  }

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester