如果系统不加载Netbios协议
不使用 Netapi32.lib,怎样获得网卡地址

解决方案 »

  1.   

    unsigned char macAddress[6]; 
            ULONG macAddLen = 6; 
            iRet=SendARP(nRemoteAddr, (unsigned long)NULL,(PULONG)&macAddress, &macAddLen); 
            if ( iRet == NO_ERROR ) 
                    { 
                    printf( "MacAddress: " ); 
                    for( int i =0; i<6; i++ ) 
                            { 
                            printf( "%.2x", macAddress[i] ); 
                            if ( i<5 ) printf( "-" ); 
                            }                
                    printf( " " ); 
                    } 
            else 
            printf( "SendARP Error:%d ", GetLastError()); 
      

  2.   

    #include <windows.h>
    #include <iphlpapi.h>
    #pragma comment(lib,"iphlpapi.lib")
    #pragma comment(lib,"ws2_32.lib")int __cdecl main()
    {
    HRESULT hr;
    IPAddr  ipAddr;
    ULONG   pulMac[2];
    ULONG   ulLen; ipAddr = inet_addr ("192.168.0.1");
    memset (pulMac, 0xff, sizeof (pulMac));
    ulLen = 6; hr = SendARP (ipAddr, 0, pulMac, &ulLen);
    printf ("Return %08x, length %8d\n", hr, ulLen); if(hr != NO_ERROR)return 0; 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;
    }
      

  3.   

    没法运行,系统报错:“找不到头文件iphlpapi.h”,我在网上也搜不到这两个头文件,安装了最新的SDK,也没找到!不知那位网友能否发给我一份“iphlpapi.h”和“iphlpapi.lib”!谢谢!我的Email地址是[email protected]