Update per FTP

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von zauber777.

    Update per FTP

    Hallo,

    ich habe ein Programm (mit VB2010Net geschrieben), in welches ich einen Button eingebaut habe um das Programm via FTP updaten zulassen.
    Wie ich mich auf einen FTP verbinden kann, weiss ich theoretisch (siehe Code im Anhang), aber ich weiss nicht, wie ich es anstellen soll, dass er die Dateien und Dateien in Ordnern auf dem FTP mit den schon vorhandenen vergleicht und die neueren sich kopiert vom FTP!?

    Könntet ihr mir bitte helfen?

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.Text
    3. Imports System.Net
    4. Public Module Test
    5. Public Sub Main()
    6. ' Verbindung zu einem FTP-Server herstellen.
    7. Dim FTP As New FtpClient()
    8. FTP.Connect("ftp adresse", "username", "Passwort")
    9. .
    10. .
    11. .
    12. FTP.Disconnect()


    Grüße
    Hi
    Updater werden nicht über Ftp durchgeführt. Wenn du die Zugangsdaten in deine Anwendung einträgst, kann einfach jeder darauf zugreifen. Verschleiern bringt übrigens auch nichts.

    (Wegen Anfrage wieder aufgemacht.)

    Gruß
    ~blaze~

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

    über PHP z.B.
    Ansonsten wenn es etwas einfaches sein soll(z.B. nur eine Textdatei mit ner Versionsnummer zum vergleichen) über ganz normalen HTTP Download.
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    tu einfach auf deinen webserver eine txt datei drauf wo du aktulle version drinn steht.
    dann ziehst du ein webbrowser in dein programm und versteckst ihn zb. unter einem Button (ich weis naiv aber einfach)
    dann navigierst du den webbrowser zu dem link der txt

    VB.NET-Quellcode

    1. WebBrowser1.Navigate("http://DeinWebspace.de/update.txt")

    dann speicherst du den quelltext in eine Versteckte textbox(jaja naiv)

    VB.NET-Quellcode

    1. Textbox1.text=WebBrowser1.DocumentText

    und dann machst du ne eifach if abfrage (sagen wir mal die jetzige version ist in label1.text abgespeichert)

    VB.NET-Quellcode

    1. If Label1.Text = Textbox1.text Then
    2. MsgBox("Update!!")
    3. Else
    4. MsgBox("Kein Update")
    5. End If


    bedanken bitte :thumbsup:
    nein, bitte machs anders.
    Zumal man TextBoxen nicht als Variablen verwenden soll...

    VB.NET-Quellcode

    1. variableVersion = New Net.WebClient().DownloadString(""http://DeinWebspace.de/update.txt")

    ist schon viel besser...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Hallo,

    habe mich heute mal ein bisschen belesen.
    ich werde es doch so machen, wie ich es in meinem ersten Post beschrieben habe.

    ja ich weiss dass man die Daten auslesen kann... dies ist jedoch egal, da die leute, welche mein Programm nutzen sowieso den Zugang zu den FTP kennen.

    Jetzt weissich aber leider noch immer nicht, wie ich es anstellen soll, dass er die Dateien und Dateien in Ordnern auf dem FTP mit den schon vorhandenen vergleicht und die neueren sich kopiert vom FTP!?

    Hoffe ihr könnt mir weiterhelfen.
    Wieso muss alles immer über Ftp laufen? Das Protokoll ist nicht für solche Sachen gedacht. Machs doch einfach mit Http. Du lädst einfach die benötigten Informationen über das Update herunter, die Infos können vom Server per PHP bereitgestellt werden, müssen aber nicht mal, da eine Html-Datei auch genügen würde und anschließend lädst du einfach ein Packet herunter, das das Update enthält. Das kannst du entweder in eine einzige zu entpackende Datei oder in viele kleine aufteilen. Hättest du das Dateisystem und Http verstanden und würdest Http mit Ftp vergleichen, wüsstest du, warum Ftp keinen Sinn macht.

    Gruß
    ~blaze~

    ~blaze~ schrieb:

    Das Protokoll ist nicht für solche Sachen gedacht.

    NATÜRLICH ist es für GENAU solche Sachen gemacht! Zum Transfer von DATEIEN (deswegen heißt es ja auch FILE Transfer Protocol). Ich lad' mir jetzt schon seit fast 20 Jahren Sachen per FTP runter und bei den meisten FTP Servern kann ich nur LESEN, womit sich keinerlei sicherheitsrelevante Probleme ergeben.
    NATÜRLICH ist es erforderlich, einen "richtigen" FTP Server zu haben, wo man Benutzerkonten, Zugriffsrechte etc setzen kann und nicht irgendso'n Webspace mit FTP und PHP fpr free Geschissel!
    Wie gesagt, ich denke nicht, dass das Protokoll für solche Sachen gedacht ist, wobei mir auch die Bedeutung vom Begriff "Ftp" bekannt ist. Wenn kein eingeschränkter Benutzerkreis vorhanden sein sollte, braucht man die Authentifizierung wohl auch nicht, vor allem wenn sie halt einfach im Code drinsteht. Vom Prinzip her ist Ftp einfach zum Übertragen von Dateien von Clients zum Server und umgekehrt gedacht. Da hier ein Lesevorgang durchgeführt wird, der, wie gesagt, keine Authentifizierung durch einen schreibgeschützen Account benötigt, sehe ich den Sinn von Ftp in diesem Zusammenhang nicht.
    Abgesehen davon: Hast du schon mal versucht, mehrere (viele) kleine Dateien runterzuladen? Das verhindert oder verlangsamt meistens der Ftp-Server von sich aus.

    Gruß
    ~blaze~

    ~blaze~ schrieb:

    Hast du schon mal versucht, mehrere (viele) kleine Dateien runterzuladen?

    Des öfteren ;)
    Allerdings nie Probleme damit gehabt.

    mit php- und html- programmierung bzw. wie ich von solchen ein update mache, weiss ich nicht.

    Du brauchst von NIX ne Ahnung zu haben. Auf dem Server läuft ein Apache? Dateien per FTP (nur DU!) ins DocRoot Verzeichnis und das wars. Wenn jemand dann "www.meineseite.de/meinedatei.exe" aufruft, liefert der Apache sie aus und der Browser (ob HttpWebRequest) nimmt sie entgegen. Simple and solved ...

    FTP ist zwar nach LEHRBUCH das richtige, aber praktischerweise nimmt man http, weils weniger Kopfscherzen macht (kenne zb wenige Firewalls, die Port 80 blocken ...)
    http oder ein anderes protokoll wollte ich nicht nehmen, da ich mich damit einfach nicht auskenne.

    per ftp wollte ich es machen, da ich dachte es wäre einfacher die dateien zu vergleichen und dann die neueren herunterzuladen und über die alten (auf dem pc) zu überschreiben.
    ich dachte es wäre so möglich, wie mit robocopy...

    ob ein apache auf dem ftp läuft versuche ich gerade herauszufinden :)

    zauber777 schrieb:

    da ich dachte es wäre einfacher die dateien zu vergleichen und dann die neueren herunterzuladen und über die alten (auf dem pc) zu überschreiben.

    DAS ist einfacher ;) Per HTTP kann man (meines Wissens!) nicht abfragen, wie "alt" eine Datei ist. Das muss man dann über zusätzliche Dateien regeln. Dann wird das ganze natürlich umständlicher. Mit der FTP Lösung, reicht es eine Datei auf den FTP Server zu packen und der Client kann dann nachschauen, ob er sie braucht oder halt nicht.