⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 一个简单的获取网卡mac地址的控制台程序.txt

📁 简单的获取网卡mac地址的控制该源码演示如何取得CPU频率 序列号
💻 TXT
字号:
// ==========================================
// GetMAC.CPP - YangTze presents - 06/14/2001
// ==========================================

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

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

ASTAT Adapter;

void main(void)
{
    NCB Ncb;
    UCHAR uRetCode;
    LANA_ENUM lenum;
    int i;

    i=sizeof(Ncb);

    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( (char*)Ncb.ncb_callname,  "*               " );
        Ncb.ncb_buffer = (unsigned 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]
            );
        }
    }
}

编译方法:1、将此代码剪贴保存为getmacadd.c
          2、然后在命令行状态(dos提示符下)执行:cl getmacadd.c /link netapi32.lib。这里为了保证编译顺利执行,必须保证编译程序能找到cl.exe 和netapi32.lib。否则先执行vcvars32.bat(Visual C++ 6.0环境)或者vsvars32.bat(Visual C++ 7.0环境)。编译正常完成后,输出如下:

C:\>cl getmacadd.c /link netapi32.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

getmacadd.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:getmacadd.exe
netapi32.lib
getmacadd.obj


执行getmacadd.exe即可。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -