谁有获取子网掩码的例子,提供个,谢谢

解决方案 »

  1.   


    #include   <Iphlpapi.h>  
    #pragma   comment(lib,   "Iphlpapi.lib")    //   Get   and   print   information   from   IP_ADDR_STRING   structure.  
    void   PrintIPs(PIP_ADDR_STRING   pCurIP,   bool   bFullInf,   CString   &strADDRList)  
    {  
    strADDRList   =   "";  
    if   (pCurIP->IpAddress.String[0]   ==   '\0')    
    {  
    strADDRList   =   "not   presented\n\n";  
    return;  
    }  
    CString   strTemp;  
    if   (bFullInf)    
    {  
    do    
    {  
    strTemp.Format("IP   Addr:[%s]   Subnet   Mask:[%s]\r\n",  
    pCurIP->IpAddress.String,  
    pCurIP->IpMask.String[0]   ==   '\0'   ?   "no"   :   pCurIP->IpMask.String);  
    strADDRList   +=   strTemp;  
    }   while   ((pCurIP   =   pCurIP->Next)   !=   NULL);  
    }    
    else    
    {  
    do    
    {  
    strTemp.Format("%s           ",   pCurIP->IpAddress.String);  
    strADDRList   +=   strTemp;  
    }   while   ((pCurIP   =   pCurIP->Next)   !=   NULL);  
    }  }
      

  2.   

    最简单的办法是用windows命令:
    ipconfig /all ->d:\1111.txt 就可以直接输出到一个文本文件,再解析这个文件就可以了。在VC里可以用ShellExecute调用windows命令
      

  3.   

    参考:http://topic.csdn.net/t/20030310/10/1510668.html
      

  4.   

    GetAdaptersInfo啊Client Requires Windows XP, Windows 2000 Professional, Windows Me, or Windows 98. 
    Declared in Iphlpapi.h.
    Link to Iphlpapi.lib.
    Requires Iphlpapi.dll.
    PIP_ADAPTER_INFO pAdapterInfo;
    PIP_ADAPTER_INFO pAdapter = NULL;
    DWORD dwRetVal = 0;pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
    ULONG 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) {
        printf("\tAdapter Name: \t%s\n", pAdapter->AdapterName);
        printf("\tAdapter Desc: \t%s\n", pAdapter->Description);
        printf("\tAdapter Addr: \t%ld\n", pAdapter->Address);
        printf("\tIP Address: \t%s\n", pAdapter->IpAddressList.IpAddress.String);
        printf("\tIP Mask: \t%s\n", pAdapter->IpAddressList.IpMask.String);    printf("\tGateway: \t%s\n", pAdapter->GatewayList.IpAddress.String);
        printf("\t***\n");
        if (pAdapter->DhcpEnabled) {
          printf("\tDHCP Enabled: Yes\n");
          printf("\t\tDHCP Server: \t%s\n", pAdapter->DhcpServer.IpAddress.String);
          printf("\tLease Obtained: %ld\n", pAdapter->LeaseObtained);
        }
        else
          printf("\tDHCP Enabled: No\n");
        
        if (pAdapter->HaveWins) {
          printf("\tHave Wins: Yes\n");
          printf("\t\tPrimary Wins Server: \t%s\n", pAdapter->PrimaryWinsServer.IpAddress.String);
          printf("\t\tSecondary Wins Server: \t%s\n", pAdapter->SecondaryWinsServer.IpAddress.String);
        }
        else
          printf("\tHave Wins: No\n");
        pAdapter = pAdapter->Next;
      }
    }
    else {
      printf("Call to GetAdaptersInfo failed.\n");
    }