2010년 2월 25일 목요일

MacAddress 가져오기

int GetMacAddress(char *macaddress)

{

    ASTAT Adapter;

 

    NCB Ncb;

    UCHAR uRetCode;     

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

    //loging( "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 );

        //loging( "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];

 

        unsigned char aa[16] = "*              ";

        memcpy(Ncb.ncb_callname , aa , 16);        

        Ncb.ncb_buffer = (unsigned char *) &Adapter;

        Ncb.ncb_length = sizeof(Adapter);

 

        uRetCode = Netbios( &Ncb );

        //loging( "The NCBASTAT on LANA %d return code is: 0x%x \n",

        //lenum.lana[i], uRetCode );

        if ( uRetCode == 0 )

        {

            sprintf(macaddress, "%02x%02x%02x%02x%02x%02x",

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

             return 1;

         }

    }

    return 0;

}

[출처] vc++ macadress 얻어오기 데브피아 펌|작성자 하나

 

댓글 없음:

댓글 쓰기