Alle Rechner im Netz anzeigen?
-
Hi!
Hat jemand eine Ahnung, wie ich rausfinden kann, welche Rechner momentan im LAN sind?
Meine Idee wäre, daß ich alle möglichen IP Adressen in einer Schleife pinge, 3 bis 5 Tage später dürfte ich dann das Ergebnis haben... Hat Jemand eine bessere Idee?Ich habe auch schon im Forum gesucht, aber keine passened Antworten gefunden!
[url] Nachrichten im LAN [/url]
Bei den dort angegebenen Links habe ich leider nichts gefunden, kann fast kein Englisch..
-
Mir ist grade noch eine zweite schlechte Lösung eiungefallen: mit "net view" die Rechnernamen in eine Datei schreiben, und diese Datei dann auswerten. Geht aber dann leider nicht auf Win9x/Me Systemen....
-
siehe >codeguru<, da gibts Code
-
wenn du auf die broadcast adrsse pings sollten alle Rechner von sich aus antworten.
-
Danke, kenne mich da aber noch nicht so genau aus. Hast Du vielleicht ein paar Quelltext-Schnipsel für mich? Oder kannst Du mir das etwas näher erklären?
-
Hi!
BOOL CComputerDlg::OnInitDialog() { CDialog::OnInitDialog(); m_Liste.InsertColumn(0,"Computer Name",LVCFMT_LEFT,150); m_Liste.InsertColumn(1,"Status",LVCFMT_LEFT,100); m_Liste.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_GRIDLINES ); CString strTemp; struct hostent *host; struct in_addr *ptr; DWORD dwScope = RESOURCE_CONTEXT; NETRESOURCE *NetResource = NULL; HANDLE hEnum; WNetOpenEnum( dwScope,NULL,NULL,NULL,&hEnum); WSADATA wsaData; WSAStartup(MAKEWORD(1,1),&wsaData); if(hEnum) { DWORD Count = 0xFFFFFFFF; DWORD BufferSize = 2048; LPVOID Buffer = new char[2048]; WNetEnumResource( hEnum, &Count,Buffer, & BufferSize); NetResource= (NETRESOURCE*)Buffer; char szHostName[200]; unsigned int i,j; j=BufferSize/sizeof(NETRESOURCE); CString Print; Print.Format("%d",j); // MessageBox(Print); for (i=0;i<j;i++,NetResource++) { if( NetResource->dwUsage == RESOURCEUSAGE_CONTAINER && NetResource->dwType == RESOURCETYPE_ANY) { if( NetResource->lpRemoteName ) { CString strFullName = NetResource->lpRemoteName; if( 0==strFullName.Left(2).Compare("\\\\") ) strFullName = strFullName.Right(strFullName.GetLength()-2); gethostname(szHostName, strlen( szHostName)); host= gethostbyname(strFullName); if( host == NULL) continue; ptr = (struct in_addr *) host->h_addr_list[0]; int a = ptr->S_un.S_un_b.s_b1; int b = ptr->S_un.S_un_b.s_b2; int c = ptr->S_un.S_un_b.s_b3; int d = ptr->S_un.S_un_b.s_b4; strTemp.Format("%s --> %d.%d.%d.%d",strFullName,a,b,c,d); if( Ini.FindInSection("Computer",strFullName) == TRUE) m_listeComputer.AddTail(strFullName); } } } delete Buffer; WNetCloseEnum( hEnum ); } WSACleanup(); return TRUE; }
von http://www.fun-soft.de/forum/showtopic.php?threadid=1155&time=
Source http://www.it-center.ch.tf/downloads/netwatch.zip
Ist aber net sauber geproggtmfg mike
[ Dieser Beitrag wurde am 13.01.2003 um 17:00 Uhr von *mike* editiert. ]
-
Wow, danke! Werde das heute Nacht mal ausprobieren.
-
Hi!
Hier nachmals die unveränderte Version mit Erklärung: http://www.codeproject.com/internet/ipaddress.aspmfg mike
-
Danke, funktioniert perfekt!
Euch kann man gebrauchen!
Ist das vielleicht ein Thema für die FAQ?