首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

获取子网掩码有关问题

2012-03-18 
获取子网掩码问题谁有获取子网掩码的例子,提供个,谢谢。。。[解决办法]C/C++ code#includeIphlpapi.h#pragm

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

[解决办法]

C/C++ code
#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);      }  }
[解决办法]
最简单的办法是用windows命令:
ipconfig /all ->d:\1111.txt 就可以直接输出到一个文本文件,再解析这个文件就可以了。

在VC里可以用ShellExecute调用windows命令
[解决办法]
参考:

http://topic.csdn.net/t/20030310/10/1510668.html
[解决办法]
GetAdaptersInfo啊

Client Requires Windows XP, Windows 2000 Professional, Windows Me, or Windows 98. 
Declared in Iphlpapi.h.
Link to Iphlpapi.lib.
Requires Iphlpapi.dll.

C/C++ code
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 variableif (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");}
[解决办法]


GetAdaptersInfo顶这个API函数了

热点排行