Wie starten Sie die active-Modus für den FTP-client in C, linux

Ich habe das schreiben ein wenig Kommandozeilen-FTP-client für linux in C. Es funktioniert sehr gut für gemeinsame Nutzungen (Verzeichnis, verwalten, abrufen und speichern von Dateien, etc.), und ich möchte hinzufügen die active-Modus (im moment jeder transfer wird unter den passiven Modus).

Ich weiß, dass ich Sie schicken einen Befehl in der Form :

PORT a,b,c,d,e,f

wo a b c d sind die ip-Adresse Blöcke und e f die port-Nummern. Allerdings, so wie ich es verstehe, die ip muss die ip des Rechners, auf dem mein client läuft, aber ich habe empfohlen, um getsockname(). Von dem, was ich getestet habe, getsockname() bekommt von mir die lokale ip von der Schnittstelle(s) von meiner Buchse, nicht meine ip vom internet aus gesehen. Also ich kann nicht geben Sie diese ip-Adresse für den server zu verbinden.

Sich die Frage : verstehe ich den Befehl PORT richtig, und wie man die richtige ip zu senden ?

Schreibe einen Kommentar