如题。

解决方案 »

  1.   

    http://search.csdn.net/Expert/topic/2315/2315588.xml?temp=.8135645
      

  2.   

    bool CNetView::GetAdapterInfo(CString &strGwIp)
    {
    PIP_ADAPTER_INFO pAdapterInfo;
    PIP_ADAPTER_INFO pAdapter = NULL;
    DWORD dwRetVal = 0;

    pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
    unsigned long ulOutBufLen = sizeof(IP_ADAPTER_INFO);

    // Make an initial call to GetAdaptersInfo to get
    // the necessary size into the ulOutBufLen variable
    if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) 
    {
    free(pAdapterInfo);
    pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen); 
    }

    if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) 
    {
    pAdapter = pAdapterInfo;
    while (pAdapter) 
    {
    TRACE("\tAdapter Name: \t%s\n", pAdapter->AdapterName);
    TRACE("\tAdapter Desc: \t%s\n", pAdapter->Description);
    TRACE("\tAdapter Addr: \t%ld\n", pAdapter->Address);
    TRACE("\tIP Address: \t%s\n", pAdapter->IpAddressList.IpAddress.String);
    TRACE("\tIP Mask: \t%s\n", pAdapter->IpAddressList.IpMask.String);
    TRACE("\tGateway: \t%s\n", pAdapter->GatewayList.IpAddress.String);
    strGwIp.Format("网关[%s]", pAdapter->GatewayList.IpAddress.String);
    //AfxMessageBox(strGwIp); TRACE("\t***\n");
    if (pAdapter->DhcpEnabled) 
    {
    TRACE("\tDHCP Enabled: Yes\n");
    TRACE("\t\tDHCP Server: \t%s\n", pAdapter->DhcpServer.IpAddress.String);
    TRACE("\tLease Obtained: %ld\n", pAdapter->LeaseObtained);
    }
    else
    TRACE("\tDHCP Enabled: No\n");

    if (pAdapter->HaveWins) 
    {
    TRACE("\tHave Wins: Yes\n");
    TRACE("\t\tPrimary Wins Server: \t%s\n", pAdapter->PrimaryWinsServer.IpAddress.String);
    TRACE("\t\tSecondary Wins Server: \t%s\n", pAdapter->SecondaryWinsServer.IpAddress.String);
    }
    else
    TRACE("\tHave Wins: No\n");
    pAdapter = pAdapter->Next;
    }
    }
    else 
    {
    TRACE("Call to GetAdaptersInfo failed.\n");
    return false;
    }
    free(pAdapterInfo);

    return true;
    }