是网卡的MAC地址吧!winsock里有函数能获得MAC地址,我有源码,要的话发信给我:[email protected]

解决方案 »

  1.   

    http://www.vchelp.net/source/submit/get_tcp_cfg.htm
      

  2.   

    http://www.vckbase.com/bbs/prime/viewprime.asp?id=76
      

  3.   

    MSDN//
    // Link with ws2_32.lib and iphlpapi.lib
    //#include <windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <iphlpapi.h>#pragma comment(lib,"iphlpapi.lib")int main(int argc, char **argv)
    {
        HRESULT hr;
        IPAddr  ipAddr;
        ULONG   pulMac[2];
        ULONG   ulLen;
        
        if(argc!=2)
        {
          printf("SendArp <IP address>\n");
          return 0;
        }
        
        ipAddr = inet_addr (argv[1]);
        memset (pulMac, 0xff, sizeof (pulMac));
        ulLen = 6;
        
        hr = SendARP (ipAddr, 0, pulMac, &ulLen);
        printf ("Return %08x, length %8d\n", hr, ulLen);
        
        size_t i, j;
        char * szMac = new char[ulLen*3];
        PBYTE pbHexMac = (PBYTE) pulMac;    //
        // Convert the binary MAC address into human-readable
        //
        for (i = 0, j = 0; i < ulLen - 1; ++i) {
            j += sprintf (szMac + j, "%02X:", pbHexMac[i]);
        }
        
        sprintf (szMac + j, "%02X", pbHexMac[i]);
        printf ("MAC address %s\n", szMac);
        
        delete [] szMac;    return 0;
    }
      

  4.   

    // mac.cpp : Defines the entry point for the console application.
    //#include "stdafx.h"
    #include <windows.h>
    #include <nb30.h>#pragma comment( lib, "netapi32.lib")
    typedef struct _ASTAT_
    {
    ADAPTER_STATUS adapt ;
    NAME_BUFFER NameBuff[30] ;
    } ASTAT , *PASTAT ;ASTAT Adapter ;void getmac_one( int lana_num )
    {
    NCB ncb ;
    UCHAR uRetCode ;// 首先对选定的网卡发送一个NCBRESET命令,以便进行初始化
    memset( &ncb , 0 , sizeof( ncb ) ) ;
    ncb.ncb_command = NCBRESET ;
    ncb.ncb_lana_num = lana_num ; //指定网卡号uRetCode = Netbios( &ncb ) ;
    printf( "The NCBRESET return code is : 0x%x \n" , uRetCode ) ;
    memset( &ncb , 0 , sizeof( ncb ) ) ;
    ncb.ncb_command = NCBASTAT ;
    ncb.ncb_lana_num = lana_num ; //指定网卡号
    strcpy( ( char* )ncb.ncb_callname , "*" ) ;
    ncb.ncb_buffer = ( unsigned char * )&Adapter ; //指定返回的信息存放的变量
    ncb.ncb_length = sizeof( Adapter ) ;
    //接着,可以发送NCBASTAT命令以获取网卡的信息
    uRetCode = Netbios( &ncb ) ;
    printf( "The NCBRESET return code is : 0x%x \n" , uRetCode ) ;if ( uRetCode == 0 )
    {
    //把网卡MAC地址格式化成常用的16进制形式,如0010-A4E4-5802
    printf( "The Ethernet Number[%d] is : %02x%02x-%02x%02x-%02x%02x \n" ,
    lana_num , 
    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] ) ;
    }
    }int main(int argc, char* argv[])
    {
    NCB ncb ;
    UCHAR uRetCode ;
    LANA_ENUM lana_enum ;memset( &ncb , 0 , sizeof( ncb ) ) ;
    ncb.ncb_command = NCBENUM ;
    ncb.ncb_buffer = ( unsigned char *)&lana_enum ;
    ncb.ncb_length = sizeof( lana_enum ) ;
    // 向网卡发送NCBENUM命令,以获得当前机器的网卡信息,如有多少个网卡、每张网卡的编号等
    uRetCode = Netbios(&ncb);
    printf( "The NCBENUM return code is : 0x%x \n" , uRetCode ) ;
    if ( uRetCode == 0 ) 
    {
    printf( "Ethernet Count is : %d\n\n" , lana_enum.length ) ;
    //对每一张网卡,以其网卡编号为输入编号,获得其MAC地址
    for ( int i = 0 ; i < lana_enum.length ; ++i )
    getmac_one( lana_enum.lana[i] ) ;
    }
    return 0;
    }
      

  5.   

    谢谢大家了,但我问的不是获取本地机网卡的MAC,而是其他机器的网卡的MAC