[Basic] ftp verbindung

Das Forum für Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

[Basic] ftp verbindung

Beitragvon cazper » Mo 18 Apr, 2005 14:05

hallo ersma

ich stehe irgendwie aufm schlauch

mein problem:
ich will per basic eine verbindung
zu einem ftp server aufbauen. habe
noch nicht viel erfahrung in basic
und würde mich über hilfe freuen.

vielleicht kennt ja einer tutorials oä

danke :)
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Beitragvon dfx » Mo 18 Apr, 2005 15:41

xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Beitragvon cazper » Mo 18 Apr, 2005 16:20

dfx hat geschrieben:http://www.faqs.org/rfcs/rfc959.html
:angelgrin:


:oops:

die seite is gar nichma so schlecht.
aber dummerweise in englisch. und
das meiste steht auch in einem meiner
schlauen bücher.

aber wie das in basic funktionieren
soll hab ich weder in nem buch noch
auf der oder irgendeiner andren seite
gefunden

immernoch::-?

//
und die hilfe ist nicht wirklich ne
hilfe, weil auch in englisch und
sehr dünn

ich weiß nimmer weiter...
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Beitragvon mnc » Di 19 Apr, 2005 08:09

warum denn grad basic? ich mein, nix gegen basic, aber wie der name schon sagt ists halt ziemlich äähm "basic" :)
mnc
Board-Mitglied
Board-Mitglied
 
Beiträge: 223
Registriert: Mi 19 Mai, 2004 18:27

Beitragvon cazper » Di 19 Apr, 2005 08:56

weil das so muss :/
mir wär vb auch lieber

aber läuft halt alles unter basic hier
Bild
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Beitragvon cazper » Di 19 Apr, 2005 09:42

hnkäy
nen GROBEN plan hab ich
so GROB wie ein fels

/////////////////tcp client://////////////////////////////////////////

1.--vInitSockets //socket variablen initialisieren
-----bSetupLocalIp //ip setzen
-----(bSetDefaultGateway) //gateway setzen
2. lSocket //neuen socket
3. bConnect //verbinden zum remote peer (?)
4. lSend, OnData //daten senden und empfangen, serving a callback task (?)
5. bCloseSocket //socket schliessen

:oops:

dummerweise steht das da nur so.
ohne beispiele, erklärung... ohne alles
:ok:
super was?

vielleicht kann ja einer von euch
was damit anfangen
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Re: [Basic] ftp verbindung

Beitragvon visudoer » Di 26 Apr, 2005 17:44

cazper hat geschrieben:ich will per basic eine verbindung
zu einem ftp server aufbauen.


es wär vielleicht ganz nützlich zu wissen, um WAS für "ein basic" es hier gehen würd,
gibts nämlich wie sand am meer (C64er 1.0er basic? GFAbasic? VB.net?).

sollange du nämlich das exklusiv für dich behaltest, kannst nur mit allgemein formulierten antworten rechnen.


und büddeschön
cazper hat geschrieben:weil das so muss :/
mir wär vb auch lieber

aber läuft halt alles unter basic hier

:lol: ^^ :rofl: ^^ :lol:

?????????????????

hä? also VB5/6 schass und VB.net sind - jetzt halt dich aber mal fest -
auch BASIC-sprachen. oder was denn sonst? PASCAL??? JAVA??? PERL??? MODULA??? C++???

warum glaubst du, steckt in "visual basic" das wort "basic" drinn???


ps: es gibt da so eine webseite in den weiten des www, die sich da "google" nennt...
dort könntest du ja name (ev. version) deines basic-dialektes sowie dazu noch die
wörter "connections" (od. "sockets") und "ftp" als suchkriterien eintippseln.
parallel dazu tust du dir ein zweites googel-fensterl auf und suchst nach einer liste
aller ftp-commandos
. 's kann do ned so schwa sei...

pps: in den heutigen zeiten gibts aber ganz schön viele (selbsternannte) "programmierer"... ;)
"Dad, why are we hidding from the police?"
"They use emacs, we use vi, son."
visudoer
Neu im Board
Neu im Board
 
Beiträge: 9
Registriert: Mi 02 Mär, 2005 21:15

Beitragvon lordpeng » Di 26 Apr, 2005 18:14

hmmm, mir stellt sich die frage ob basic für sowas überhaupt geeignet ist, bzw ob es nicht vielleicht sinnvoller wäre ein externes opensource tool für sowas heranzuziehen und gegebenenfalls zu adaptieren, wie z.b. wget hat zwar mit basic gar nix zu tun, aber dafür läufts auch auf allen gängigen plattformen ...

... mal ganz davon abgesehen dass ich bezweifle, dass man das in basic sauber lösen kann

btw. ich gehe doch davon aus, dass das betriebssystem des ziel-systems überhaupt tcp/ip unterstützt
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon cazper » Fr 29 Apr, 2005 12:49

loll

istn hausinternes, also eigen entwickeltes basic. allgemeine infos hätten mir gereicht. aber wern keleinen pimmel hat muss halt klugscheißen... oder auto tunen oder so... ;)

habs aber soweit schon hinbekommen
die kommandoverbindung über die ip und port 21 steht bereits.
bekomme folgende rückmeldung des servers:
220 ftp server ist bereit

dann sende ich
USER username
rückmeldung: 331 benutzename ok, erwarte passwort
PASS passwort
rückmeldung: 230 user ist angemeldet. kommandos werden erwartet

jetzt komm ich zu dem problem. für den datenaustausch muss ja eine 2. (daten)verbindung
aufgebaut werden. damit firewalls umgangen werden, benutze ich den befehl PASV, um
eine passive verbindung aufzubauen. der server sucht nen freien port und sendet diesen
zurück:
227 entering passive mode (83,133,48,159,179,192)

ich extrahiere dann den zahlen string und will die datenverbindung mit dem befehl
PORT 83,133,48,159,179,192
aufbauen. der server gibt mir aber die rückmeldung:
500 unbekanntes kommando
habs auch mit
PORT 227 Entering Passive Mode (83,....)
und
PORT Entering Passive Mode (83,....)
versucht. da bekomme ich die rückmeldung:
501ungültige parameteranzahl

ich hab auch schon beim hostersupport nachgefragt. die konnten mir aber leider nicht
helfen.

hat jemand von euch ne idee?

@lordpeng
sollte nicht jeder ftp server tcp/ip unterstützen^^
und bis jetzt ists ganz sauber gelöst. weiß halt nicht
wie ich die passive datenverbindung aufbaue... hab
schon alle möglichen varianten ausprobiert.

und an den schlaumeier vor dir: ...

ne das schreib ich jetzt nicht...
Bild
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Beitragvon visudoer » Fr 29 Apr, 2005 13:52

so wie sich das anhört, liegts am ftp srv bzw dessen settings. ist sichergestellt, dass am srv alle ports > 1024 [in deinem spezifischen sample wär dies der port 46016] auch wirklich offen sind?

(yep, klingt pervers [von wegen "security"] is aber so idR beim passive mode ftp server).


bzw - sprichst du den richtigen port an? beim PORT-cmd wird der tatsächliche port ja bekanntermassen wie folgt berechnet:

PORT a1,a2,a3,a4,p1,p2

ip = a1.a2.a3.a4 (no na)
port = (p1*256) + p2


am "hausintern entwickeltem basic" - lool - wirds denk ich kaum liegen; hast du
schon mal mit ner ordinären telnet-session auf diesen ftp server getestet?
"Dad, why are we hidding from the police?"
"They use emacs, we use vi, son."
visudoer
Neu im Board
Neu im Board
 
Beiträge: 9
Registriert: Mi 02 Mär, 2005 21:15

Beitragvon lordpeng » Fr 29 Apr, 2005 14:28

>sollte nicht jeder ftp server tcp/ip unterstützen^^
>und bis jetzt ists ganz sauber gelöst. weiß halt nicht
dass aufm ziel-server tcp/ip läuft, ist logisch sonst würd dort ja kaum ein ftp service drauf laufen, allerdings gings in deinem originalbeitrag um einen ftp-client und nicht um einen ftp server und da du dich über die ziel-umgebung bislang noch nicht ausgelassen hast, wollte ich dich nur darauf hinweisen, wär ja gut möglich, dass du dein vorhaben auf irgendeiner dos-maschine versuchst und solang man dos kein tcp/ip beibringt würds natürlich nur schwer funktionieren ...

>und an den schlaumeier vor dir: ...
war nur gut gemeint, aber wir sind ja eh alle nur deppen ...
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon cazper » Fr 29 Apr, 2005 14:42

danke für die schenllen antworten

heißt das ich müsste in diesem spezifischen fall
statt PORT 83,133,48,159,179,192
PORT 46016 senden?

und sry, wollt hier niemandem zu nahe treten

//
hier mal ne logfile vom smartftp
Code: Alles auswählen
    Resolving host name schillerms.dyndns.org...
    Connecting to (ftpserver.dyndns.org) ->  IP: 217.255.1.70 PORT: 2100
    Connected to (ftpserver.dyndns.org) -> Time = 90ms
    Socket connected waiting for login sequence.
220 schiller2000 Microsoft FTP Service (Version 5.0).
    USER squidtest
331 Password required for squidtest.
    PASS (hidden)
230-SchillerMS FTP Server
230 User squidtest logged in.
    SYST
215 Windows_NT version 5.0
    REST 100
350 Restarting at 100.
    REST 0
350 Restarting at 0.
    PWD
257 "/" is current directory.
    TYPE A
200 Type set to A.
    PASV
227 Entering Passive Mode (192,168,1,2,13,133).
    Opening data connection IP: 192,168,1,2,13,133 PORT: 3461.
    Der Vorgang wurde erfolgreich beendet.
    Connecting IP Repeater "repeater.smartftp.com" ...
    IP Repeater returned: "212.202.187.38"
    PORT 212,202,187,38,19,138
200 PORT command successful.
    Opening data connection IP: 212.202.187.38 PORT: 5002.
    LIST -aL
150 Opening ASCII mode data connection for /bin/ls.
    Command aborted by user.
    ABOR
425 Can't open data connection.
225 ABOR command successful.

der sendet auch
PORT a1,a2,a3,a4,p1,p2
Zuletzt geändert von cazper am Fr 29 Apr, 2005 14:48, insgesamt 2-mal geändert.
Bild
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Beitragvon lordpeng » Fr 29 Apr, 2005 14:47

ja, versuche es mit ports > 1024 ...

btw. ein protocoll-analyzer könnte dir beim debuggen gute dienste leisten, da du dann die kommunikation zwischen den einzelnen hosts verfolgen kannst, such mal nach ethereal bei google ...
lordpeng
Moderator
Moderator
 
Beiträge: 10183
Registriert: Mo 23 Jun, 2003 22:45

Beitragvon cazper » Fr 29 Apr, 2005 14:52

ethereal hab ich
glaube aber icht das ich dadurch neue erkenntnisse erlange
alles was ser ftp svr zurückgibt wird aufm µc-display ausgegeben
und was ich sende weiß ich ja selber ;)

aber ich werds mal mit ports>1024 versuchen

//post voher editiert\\
Bild
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Beitragvon dfx » Fr 29 Apr, 2005 18:45

entweder du machst ein PASV, liest die reply des ftp-servers darauf aus (ip + port) und baust von dir aus eine connection dahin auf.
_oder_ du schickst ein PORT mit deinen eigenen daten (ip + port), wobei der port ein von dir lokal geöffneter port ist, zu dem hin dann der ftp-server die connection aufbaut.
bitte diese zwei betriebsarten (active und passive) nicht verwechseln oder vermischen. für details siehe die schon erwähnte rfc.
xDSL unlimited 2.320 kbit/s
Bild
Bild
dfx
Board-User Level 3
Board-User Level 3
 
Beiträge: 1368
Registriert: Do 15 Jan, 2004 19:22
Wohnort: graz

Nächste

Zurück zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 24 Gäste