获取子网掩码问题
谁有获取子网掩码的例子,提供个,谢谢。。。
[解决办法]
#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.
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函数了