FTP Ordner/Files Anzeige im Netzwerk

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #61
    Original geschrieben von Abraxax
    mir ist noch was eingefallen. du brauchst ja nicht unbedingt ein komplettes CLASS A zu scannen.

    es reicht ja schon ein CLASS C bzw CLASS B netzwerk. mehr als 65.000 leute kommen doch eh nicht. oder ?

    CLASS C : 255 IPs
    CLASS B : 255*255 = 65.025 IPs
    CLASS A : 255*255*255 = 16.581.375 IPs

    dann hättest du schon mal die äussere schleife gespart. bei CLASS B.

    --
    btw.
    *ZUSAMMENFÜHR* zu deinem projekt.
    1.) Bei sehr vielen großen Lans können bis zu 3 Segmente unterschiedlich sein, da diese IP Adresse nicht in der Form .1; .2; .3 erteilen.
    Deshalb bringt auch deine schöne Hochrechnung nichts weil die nicht nach diesem Verfahren oft vergeben werden. Tja
    2.) Wird der Funktion noch ein Parameter übergeben, welcher eine beliebige Anzahl an Segementen scannen lässt. Weiterhin wird die bereits erkennbare Variable auch noch an die Funktion übergeben um Scanungen einzuschränken.
    3.) Diese Funktion ist nur zum groben testen gedacht und daher nur eine Alphaversion

    was willst du an drei ineinander geschachtelten schleifen optimieren? das muss so sein, sonst bekommst du deine werte nicht.
    Nehmen wir als Grund eine Auslastung von 100% die rund 30min anhält.
    Äh Multitasking ist ja dann nur noch stark begrenzt möglich.
    -> Daher will ich ja einen Lösungsansatz um das Performance technisch zu verbessern. Und zwar keine Hardwarelösung in Form eines Clusters, es sei denn jemand schenkt mir das Equipment

    Abgesehen davon war es nicht beabsichtigt das dieser Aufruf unter Projekthilfe zugeordnet wird, da hier wohl nicht allzu viele Leute vorbeischauen. rolleyes:


    Ich hoffe es gibt da draussen irgendeinen der die Non-Plus-Ultra Antwort auf meine Frage hat.:
    Zuletzt geändert von Payne_of_Death; 22.05.2003, 18:02.
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

    Kommentar


    • #62
      1.) Bei sehr vielen großen Lans können bis zu 3 Segmente unterschiedlich sein, da diese IP Adresse nicht in der Form .1; .2; .3 erteilen.
      Deshalb bringt auch deine schöne Hochrechnung nichts weil die nicht nach diesem Verfahren oft vergeben werden. Tja
      ich denke mal nihct, dass wahllos irgendwelche ips vergeben werden. diese sollte schon zu einem bestimmten netztyp gehören. A / B / C

      daher macht das schon sinn, wie ich es geschrieben habe.

      Abgesehen davon war es nicht beabsichtigt das dieser Aufruf unter Projekthilfe zugeordnet wird, da hier wohl nicht allzu viele Leute vorbeischauen. rolleyes:
      das mag sein. aber es gehört ja nunmal zu diesem einen projekt, wo du hilfe willst. dafür muss man ja nicht unzählige threads haben.

      aber als tipp.... mache einen link hierher in deine signatur.
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #63
        Original geschrieben von Abraxax
        ich denke mal nihct, dass wahllos irgendwelche ips vergeben werden. diese sollte schon zu einem bestimmten netztyp gehören. A / B / C

        daher macht das schon sinn, wie ich es geschrieben habe.

        das mag sein. aber es gehört ja nunmal zu diesem einen projekt, wo du hilfe willst. dafür muss man ja nicht unzählige threads haben.

        aber als tipp.... mache einen link hierher in deine signatur.
        1.) Ne du das macht oft keinen Sinn, die vergeben das nicht vollkommen wahllos aber die machen oft Sprünge -> von 217.15.18.2; 217.15.18.5
        Und daher würden bei einer richtig großen die Adressbereiche ausgehen.
        Ist auch so habs einmal selber festgestellt und LaMagra der häufig große LANs besucht stimmt mir zu.
        Ich geb dir recht bei kleineren LANs mit 400 sind 2 Segmente i. R. ausreichend. Aber bei größeren eben net.

        Deshalb wird dieser Teil auch variabel gehandled


        2.) Zu unnötigen Threads: -> Stichwort: Off Topic

        3.) Wenn ich das mache, tut der lustige Abraxax das wieder zusammenfummeln und ich würde wieder ein Eigentor schießen
        -> es sei denn ich schick dir einen rechtlich einwandfreien, noteriellen beurkundeten Vertrag zu denn du dann mit deinem Blut unterzeichnen darfst. Das du die Hände in der Hosentasche behälst. Im Falle einer Zuwiederhandlung droht eine Vertragsstrafe in der du mir lebenslang (also 30 Jahre) 89% deines Gehaltes überweisen wirst. Also 11% abzgl. 9% Steuern dürften doch reichen oder?


        [color=blue]MfG Payne_of_Death[/color]

        [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
        [color=red]Merke:[/color]
        [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

        Murphy`s Importanst LAWS
        Jede Lösung bringt nur neue Probleme
        Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
        In jedem kleinen Problem steckt ein großes, das gern raus moechte.

        Kommentar


        • #64
          Deshalb wird dieser Teil auch variabel gehandled
          das ist auch besser so. darauf wollte ich doch nur hinaus. du sollst es nämlich so machen. es bringt ja nix , wenn du ein komplettes CLASS A scannst, es aber nur ein CLASS C ist.

          in diesem sinne....
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #65
            Hi,

            also ich hab mal auf ein paar LANs so ne ftp-Webseite mit PHP gehabt.
            Genauer gesagt auf den letzten Circus Infernus Lan-Partys.

            Das dumme an der PHP Lösung ist erstens das es mit nicht gelungen ist zu diferenzieren ob der server nun
            530 Login Incorrect ,
            xxx Too many users ,
            oder
            xxx Too many connections from the same IP ist.

            Habt ihr das Problem gelöst?

            nach meiner Erfahrung ist das scannen von FTPs ist mit PHP sozusagen nicht möglich.
            Erstens muss dafür immer ne seite geladen werden das es überhaupt passiert (lösbar) , 2tens ist php zu langsam und 3tens muss man immer auf das timeout achten für einen script (normal 30 sec).
            Das macht deinen HTTP Server platt.
            Musst ja damit rechnen das es so ca 500.000 bis 1.000.000 dateien sein können.

            Aber ich hab für den status-test ne lösung:
            Ich hab in c++ nen kleines programm unter LINUX geschrieben dass den status testet. Wenn es jemand haben will. Ist sehr einfach.
            Kann ich aber auch schnell mal für win nachbauen.
            Sind vieleicht 15 Zeilen.

            Man kann es im PHP mit dem exec() Befehl nutzen.
            Es gibt ein |not_ok zurück wenn die verbindung nicht aufgebaut werden konnte.
            ein |connect_ok wenn es klappte.
            wenn auch der login klappte gibt er noch zusätzlich ein |all_ok
            wenn nicht gibt er die Fehlermeldung so zurück
            |"die fehlermeldung".

            Das kann man dann leicht in php auswerten.

            Werde den script auf der Lan-force3 in Stockach testen.
            Wenn jemand das programm will, einfach melden.
            fruchtjogurt@web.de

            Bin grad an einem Deamon programm das die server aus der mysqldatenbank holt, scannt und die ergebnisse immer in die mysql-datenbank zurückschiebt.

            geht soweit auch,
            nur ein großes Problem:
            wenn ich den ls -R benutze (lftp zur hilfe nehme)
            dann geht das bei allen servern außer dem Bullet proof
            wenn ich die ordner normal rekursiv durchsuche macht meine ftplib probleme.
            gleiches problem wie bei PHP.
            Ordner mit leerzeichen werden nicht gesannt
            hab das problem noch nicht gelöst
            Noch schlimmer ist wenn man z.b.
            einen mp3z und ein mp3z gepackt ordner hat.
            so geht er immer in den mp3z was eine endlosschleife zur folge hat.

            Das ersetzen von leerzeichen durch "\ "(linux macht dasja so) oder "%20".
            Geht auch nicht.
            Apropos, den fehler gibts bei Bulletproof servern nicht (schon verrückt)

            Der Teil mit der mysqldatenbank funzt dagegen ziemlich perfekt.
            Sau schnell das Zeug.

            Naja, falls sich jemand mit c++, ftplibs unter linux auskennt, einfach melden


            Gruß Ulrich

            Kommentar


            • #66
              poste doch mal dein c++-script hier hinein. auch habe ich bei den code-schnipseln die class eingetragen. dort kannst du dann auch den c++-code posten.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #67
                Hi,

                Ich denke von dem kleinen C++ Programm das die server auf den status testet, oder?

                Hier:
                Die .cpp datei:


                PHP-Code:
                #include <iostream>
                #include <fstream>
                #include <stdlib.h>
                #include <stdio.h>

                #include <ftplib.h>


                using namespace std;

                static 
                char *host NULL;
                static 
                char *user "anonymous";
                static 
                char *pass "anonymous";
                static 
                netbuf *conn NULL;

                int main(int argcchar *argv[])
                {
                    if (
                argc  == 1)
                    {
                        
                cout << "Zu wenig Argumente\n";
                        return 
                0;
                    }
                    
                host argv[1];
                    if (
                argc 2)
                        
                user argv[2];
                    if (
                argc 3)
                        
                pass argv[3];

                    
                void FtpInit(void);
                    if  (
                FtpConnect(host,&conn))
                    {
                        
                cout << "|connect_ok\n";
                        if (
                FtpLogin(userpassconn))
                        {
                            
                cout << "|all_ok\n";
                        }
                        else
                        {
                            
                cout << "|answer=" << FtpLastResponse(conn);
                        }
                        
                FtpClose(conn);
                    }
                    else
                    {
                    
                cout << "|not_ok\n";
                    }


                Und hier noch die makefile:

                # Definitions:
                PHP-Code:
                # Definitions:
                CC g++ --I/usr/local/include -L/usr/local/lib -lftp
                OBJ 
                ftptest.o
                BIN 
                ftptest

                # Rules:
                $(BIN): $(OBJ)
                    $(
                CC) -$(BIN) $(OBJ)

                ftptest.oftptest.c
                    
                $(CC) -c ftptest.

                Musst die FTPLIB runterladen und
                installieren.
                also ./configure
                make
                make install

                Dann musst du noch die libs ind dass /usr/lib schieben (habs nicht anders hinbekommen) sonst hast danach so nen scheiß shared lib fehler.

                Gruß

                Kommentar


                • #68
                  oh, verdammt.Das war nicht die neuste version.
                  Das static sollte oben bei den char* weg und anstatt "|answer=" nur "|"stehen
                  Zuletzt geändert von FRUCHTJOGURT; 05.08.2003, 15:32.

                  Kommentar


                  • #69
                    Servus Fruchtjogurt,

                    ich bin in letzter Zeit leider nicht dazu gekommen an dem bestehenden Projekt weiterzuarbeiten.

                    Jedoch bin ich zum gleichen Schluss gekommen wie du, wenn ich in PHP die IP-Ranges scanne erhalte ich eine ewige Auslastung von 100% und das ist Performance technisch net sinnvoll.

                    Jedoch hab ich mich mal mitunter schlau gemacht. Das Ergebnis war das man dies als VB6 oder C++ Script via Server Job laufen lassen muss. Dann hat man eine geringe Auslastung.

                    Also vom Prinzip her brauche ich nur einen Job der die IP-Ranges durchscannt (mit nem Parameter könnte man auswählen wieviele IP-Ranges überprüft werden sollen) und diese dann in die DB importiert.

                    Als nächster Schritt müsste man einen Job machen oder wenn es die Performance erlaubt mit PHP alle 10 min oder so abchecken ob der Server on oder off ist.

                    Wenn du Lust Zeit oder einfach mal was der gleichen machen willst.

                    Wir freuen uns immer

                    Gruß Payne
                    [color=blue]MfG Payne_of_Death[/color]

                    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                    [color=red]Merke:[/color]
                    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                    Murphy`s Importanst LAWS
                    Jede Lösung bringt nur neue Probleme
                    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                    Kommentar


                    • #70
                      @FRUCHTJOGURT
                      wenn ich das richtig sehe, ist die ftplib einfach vergleichbar mit einer class in php. richtig?
                      mal sehen, vielleicht teste ich es auch mal bei mir, wenn ich lust habe.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #71
                        Hallo,

                        ich weiß das zwar der Thread hier ein bissel älter ist, aber ich habe so ein ähnliches Problem. Und zwar:


                        Ich habe 2 Server Server1 und Server2.( die beide Im internet sind also keine Lokale Server)

                        Ich möchte von Server1 via FTP auf Server2 in ein Verzeichniss zugreifen. Also so z.b:

                        in das Verzeichniss "files" -> Server2/files
                        Im Ordner flies sind nun 2 Dateien "file.txt und hello_world.doc" und ein Ordner "testfolder".

                        Wenn ich über die URL des Server1 geh soll er mir alle zeigen die in dem Ordner files drin sind. Alsos so : Server1/index.php?dir=root
                        nun müssten die 2Dateien und der Ordner zu sehen sein.
                        Klicke ich nun eine Datei an soll er dann einen Link auf die Datei von Server2 machjen bzw anzeigen(Server2/files/file.txt). Sollte ich aber denn Ordner anklicken sollte z.b. in der URL Server1/index.php?dir=testfolder anzeigen und auch deren Inhalt so wie bei der Variable root. Und sollte sich nun dort wieder Dateien und Ordner befinden sollte dies das geliche Spiel sein wie vorhin nur das in der URL dann z.b. Server1/index.php?dir=testfolder/testfolder2 oder so eben. Und bei einer Datei direkt den Link eben auf den Server2 gemacht wird so das der User es direkt sieht. Das ganze soll eine Filebase ergeben. Nunja ich schau schon die ganze Zeit im Inet herrum um irgendwo was zu finden und ich find nichts bzw es geht nicht. Und da hier der Thread fast genau so ist wie mein Problem, aber bei mir eben dieses cript nicht geht dachte ich mir ich schreib einfach mal rein,.

                        Wäre super wenn ch bald eine Antwort bekommen würde.

                        Mit freundlichen Grüßen

                        Stefan
                        Zuletzt geändert von deste; 18.08.2006, 14:34.

                        Kommentar

                        Lädt...
                        X