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 geproggt 😉

    mfg 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.asp

    mfg mike 😃



  • Danke, funktioniert perfekt!
    Euch kann man gebrauchen 😉 !

    Ist das vielleicht ein Thema für die FAQ?


Anmelden zum Antworten