Netzwerk-Rechner auflisten
-
Hi,
wie kann ich alle Netzwerkrechner in einem Windows(nicht unbedingt XP/2000/NT)-Netzwerk auflisten lassen?
Hintergrund ist ein NetSend-Programm, welches MailSlots benutzt (die man ja auch unter Win98 benutzen kann). Bisher konnte ich diese Auflistung nur unter Win NT/XP/2000 realisieren mit nem System-Dialog.
-
hi WebFritzi
das was du suchst koennte WNetOpenEnum sein
Meep Meep
-
Danke, werd ich mal versuchen.
-
Ich hab da nix gefunden...
-
#ifndef UNICODE #define UNICODE #endif #include <stdio.h> #include <assert.h> #include <windows.h> #include <lm.h> int wmain(int argc, wchar_t *argv[]){ LPSERVER_INFO_101 pBuf = NULL; LPSERVER_INFO_101 pTmpBuf; DWORD dwLevel = 101; DWORD dwPrefMaxLen = -1; DWORD dwEntriesRead = 0; DWORD dwTotalEntries = 0; DWORD dwTotalCount = 0; DWORD dwServerType = SV_TYPE_SERVER; // all servers DWORD dwResumeHandle = 0; NET_API_STATUS nStatus; LPTSTR pszServerName = NULL; DWORD i; if (argc > 2){ fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]); exit(1); } // The server is not the default local computer. // if (argc == 2) pszServerName = argv[1]; // // Call the NetServerEnum function to retrieve information // for all servers, specifying information level 101. // nStatus = NetServerEnum(pszServerName, dwLevel, (LPBYTE *) &pBuf,dwPrefMaxLen,&dwEntriesRead,&dwTotalEntries,dwServerType,NULL,&dwResumeHandle); // // If the call succeeds, // if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA)){ if ((pTmpBuf = pBuf) != NULL){ // // Loop through the entries and // print the data for all server types. // for (i = 0; i < dwEntriesRead; i++){ assert(pTmpBuf != NULL); if (pTmpBuf == NULL){ fprintf(stderr, "An access violation has occurred\n"); break; } printf("\tPlatform: %d\n", pTmpBuf->sv101_platform_id); wprintf(L"\tName: %s\n", pTmpBuf->sv101_name); printf("\tVersion: %d.%d\n",pTmpBuf->sv101_version_major,pTmpBuf->sv101_version_minor); printf("\tType: %d", pTmpBuf->sv101_type); // // Check to see if the server is a domain controller; // if so, identify it as a PDC or a BDC. // if (pTmpBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) wprintf(L" (PDC)"); else if (pTmpBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL) wprintf(L" (BDC)"); printf("\n"); // // Also print the comment associated with the server. // wprintf(L"\tComment: %s\n\n", pTmpBuf->sv101_comment); pTmpBuf++; dwTotalCount++; } // Display a warning if all available entries were // not enumerated, print the number actually // enumerated, and the total number available. if (nStatus == ERROR_MORE_DATA){ fprintf(stderr, "\nMore entries available!!!\n"); fprintf(stderr, "Total entries: %d", dwTotalEntries); } printf("\nEntries enumerated: %d\n", dwTotalCount); } } // // Free the allocated buffer. // if (pBuf != NULL) NetApiBufferFree(pBuf); return 0; }
ist ein stück code der hier schon mal gepostet worde.
...netapi32.lib Einbinden...