GetIp() { //初始化网络库 //WSADATA wsd; //WSAStartup(MAKEWORD(2,2),&wsd); DWORD Count=0xFFFFFFFF,Bufsize=4096,Res; NETRESOURCE* nRes; NETRESOURCE* nRes1; NETRESOURCE* nRes2; HANDLE lphEnum; LPVOID Buf = new char[4096]; LPVOID Buf1 = new char[4096]; LPVOID Buf2 = new char[4096]; //打开列举的网络资源 Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER,NULL, &lphEnum); //获取列举的网络资源信息 Res = WNetEnumResource(lphEnum, &Count, Buf, &Bufsize); nRes = (NETRESOURCE*)Buf; for (DWORD n = 0; n < Count; n++, nRes++) { DWORD Count1 = 0xFFFFFFFF; Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER, nRes, &lphEnum); Res = WNetEnumResource(lphEnum, &Count1, Buf1, &Bufsize); nRes1 = (NETRESOURCE*)Buf1; for (DWORD i = 0; i < Count1; i++, nRes1++) { DWORD Count2 = 0xFFFFFFFF; Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONTAINER, nRes1, &lphEnum); Res = WNetEnumResource(lphEnum, &Count2, Buf2, &Bufsize); nRes2 = (NETRESOURCE*)Buf2; for (DWORD j = 0; j < Count2; j++, nRes2++) { CString sName = nRes2->lpRemoteName; sName = sName.Right(sName.GetLength() - 2); CString str = _T(""); struct hostent *pHost; str += sName; str += _T(" "); char szTemp[256] = {0}; WCharToMByte(sName, szTemp, 256); pHost = gethostbyname(szTemp); if(pHost == NULL) { } else { str += inet_ntoa (*(struct in_addr *)*pHost->h_addr_list); } if (!str.IsEmpty()) { UpdateData(TRUE); m_EditIP += str; m_EditIP += _T("\r\n"); UpdateData(FALSE); } } } } delete Buf; delete Buf1; delete Buf2; WNetCloseEnum(lphEnum); }
枚举局域网IP
最新推荐文章于 2019-04-22 10:55:15 发布