# Probleme mit FTP verbindung



## Badboy (23. Apr 2009)

Hi


Ich bin neu im Forum daher hoffe ich dass dieser Thread nicht schon irgendwo anders existiert...
Zum hinzufügen ich bin noch anfÄnger und daher bitte in kleinen schritten erklÄren...

Ich habe versucht einen FTP client zu programmieren und habe dafür commons net 2.0 runtergeladen und eingebunden.

in meinem privaten netzwerk hat der kleine webserver auf den ich zugreife die adresse 192.168.123.158. Und zu hause klappt alles wunderbar...Auch in einem netzwerk von einem freund geht alles gut (wenn ich dann die ip adresse wieder auf das netzwerk anpasse). Ich sollte erwähnen dass der server sich im lokalen netzwerk befindet.

wenn ich jetzt mit dem gleichen rechner (also auch das gleiche programm) zur firma gehe (also ein anderes netzwerk) und ich also da die ip des WS die verÄnderbar ist auf 10.0.0.158 einstelle kann der nicht mehr zugreifen und ich bekomme ein timeout exception.


was ich nicht verstehe ist wenn ich über dos den server anpinge findet er den server und ich kann auch von ihm runterladen. selbst das programm eTiceSoft(ein programm welches mit dem WS mitgeliefert wird) findet ihn im netzwerk und kann drauf zugreifen.


Kann es sein dass die library commons ein problem mit adressen hat die im stil 10.0.0.X sind?
Ist es wahrscheinlicher dass ich im lokalen netzwerk geblockt werde?
was kann ich testen...

ich bin für alle tips dankbar...

Grüsse


----------



## maki (23. Apr 2009)

> Ist es wahrscheinlicher dass ich im lokalen netzwerk geblockt werde?


Gut möglich, hatte letztens wieder eine "interessante" Erfahrung mit XP SP2, vom Desktop gestartet ging nix, von der Kommandozeile aus alles...


----------



## Badboy (23. Apr 2009)

hi

am wichtigsten wäre für mich zu wissen ob es sein kann dass die library ein problem mit der adresse 10.0.0.158 hat.

dass die zum beispiel nur gut mit adresse die in dem stil 192.168.X.X. liegen arbeiten kann.

ich habe nämlich morgen die möglichkeit dass ein netzwerkinformatiker sich der sache annimmt und da hÄtte ich schon gerne gewusst ob ichdas ausschliessen kann...

ich seh keinen grund drin aber gut^^

Grüsse und nochmals danke für antworten (danke auch schon an maki)


----------



## E.G.O. (23. Apr 2009)

möglich wäre eine falsche ip des Rechners von dem aus du das Programm startest, 
dein freund hat bestimmt auch ein netzwerk in der Form 192.168...
bin mir aber keinesfalls sicher


----------



## maki (23. Apr 2009)

> ob es sein kann dass die library ein problem mit der adresse 10.0.0.158 hat.


Halte ich persönlich für nahezu ausgeschlossen.


----------



## Ebenius (23. Apr 2009)

Badboy hat gesagt.:


> wenn ich jetzt mit dem gleichen rechner (also auch das gleiche programm) zur firma gehe (also ein anderes netzwerk) und ich also da die ip des WS die verÄnderbar ist auf 10.0.0.158 einstelle kann der nicht mehr zugreifen und ich bekomme ein timeout exception.


Ist das passives oder aktives FTP. Im Firmennetzwerk, Verbindung mit aktivem FTP nach außen, da zickt dann bestimmt die Firewall in der Firma rum und lässt die Verbindung nicht zurück. Liegt bestimmt an soetwas.

Ebenius


----------



## Badboy (23. Apr 2009)

maki hat gesagt.:


> Halte ich persönlich für nahezu ausgeschlossen.



das würde also heissen nach dem ausschlussverfahren dass es nur ne blockade im netzwerk sein kann...

ich hab sogar schon probiert das timeout raufzusetzen um sicher zu sein dass es nicht einfach daran liegt dass er zu lange braucht um den ws zu finden... aber das ist jetzt auch ausgeschlossen...


hi also die IP des rechners ist auf jeden fall richtig...

in jedem netzwerk ist die adresse des rechners natürlich anders.
aber hier hab ich zum beispiel 10.0.0.41 und zu hause eben eine mit 192.168.X.X

bin für erfahrungen oder vorschlÄgen wie ich trotzdem noch zugang zum ftp server bekommen könnte dankbar...


PS: danke für die bisherigen antworten


----------



## Badboy (23. Apr 2009)

hi wie kann ich nachschauen ob es ein aktives oder passives ftp ist?
und was kann ich programmiertechnisch machen...
ich gebe zu ich habe da nicht drauf geachtet ob aktif oder passiv beim programmieren weil ich nicht den unterschied kannte... aber was könnte ich (oder dann eben der informatiker morgen dagegen machen?


----------



## Ebenius (23. Apr 2009)

Ich kenne leider das Framework nicht. Daher kann ich dir nicht sehr helfen. Das FTP-Kommando heißt _PASV_, es gibt auch eine Methode in der FTP-Klasse, um dieses zu verschicken. Wie man damit genau arbeiten muss, weiß ich aber auch nicht.

Viel Erfolg beim spielen wünscht
Ebenius


----------



## Badboy (23. Apr 2009)

hi ich weis nicht ob das ne rolle spielt aber ich bin eigneltich nur im internen netzwerk. (befinde mich sogar zur zeit auf dem gleichen switch).

und firewalls greifen doch nur bei verbindungen nach aussen ein, oder?

also ist das passiv oder aktiv eine eigenschaft vom netzwerk (wenn ich das richtig verstanden hab)? also muss meine verbindung (ftp client) der gleichen art sein wie das des netzwerkes?

oder versteh ich da was falsch?


----------



## Ebenius (23. Apr 2009)

Aktives und passives FTP sind in der Wikipedia (File Transfer Protokoll) schön einfach erklärt. Dass es sich in der Firma auch nur um eine Verbindung im Intranet handelt, hab ich nicht gewusst.

Hast Du denn mal ein normales FTP-Tool probiert? Windows FTP von der Kommandozeile? Total Commander? ncftp? You name it. Wenn diese Werkzeuge die FTP Verbindung vom selben Client zum selben Server auch nicht aufbekommen, kannst Du die Bibliothek als Fehlerquelle schon mal ausschließen.

Ebenius


----------



## Badboy (23. Apr 2009)

ja also
ich bekomme über die dosbefehle zugriff auf den server und kann auch von dort aus runterladen...

über filezilla kann ich auf dem server zugreifen aber nicht downloaden (kann ich aber in keinem netzwerk).

zur zeit das einzige was nicht geht ist mit meinem programm in java... (das gleiche auf dem gleichen rechner welches bei mir zu hause geht...


also meine verbindung ist nur eine interne verbindung ... die firma ist schon über einem server mit dem internet verbunden...
da ich aber direkt im lokalen netzwerk zugreife dürfte das doch kein problem sein (oder gibt es auch firewalls für lokale netzwerke)


----------



## Ebenius (23. Apr 2009)

Badboy hat gesagt.:


> oder gibt es auch firewalls für lokale netzwerke


Gibt's alles. Ich kenne ja Deine Firma und deren IT nicht.  Wir haben mehrere Kunden die innerhalb der selben Gebäude mehrere separate Netzwerke über Gateways verbinden und jeder Port in der Firewall einzeln eingetragen werden muss. Dafür gibt's dann hübsche Antragsformulare, wo man draufschreibt, dass man von Host (oder Netzmaske) XYZ auf Server A einen Port (oder Port-Range) aufmachen können will, welche Art Daten übertragen werden, welches Datenaufkommen in etwa zu erwarten ist und warum das ganze nötig ist. :autsch:

Ebenius


----------



## Badboy (23. Apr 2009)

aber diese sicherheiten wären ja dann auch für den dos modus.
da brauch ich zum beispiel nur ftp 10.0.0.158 einzugeben und dann kann ich mich mit benutzernamen und passwort einloggen...

ich stell einfach mal den teil rein der zuständig ist für den ftp zugang...
dann würde es mich freuen wenn ihr euch das mal kurz anschaut... aber wie gesagt das gleiche programm funktioniert bei mir zu hause super...

schonmal danke für die geduld die ihr mir entgegenbringt...


```
package fr.logiciel.analyse.recette.ftp;

import java.io.IOException;
import java.net.InetAddress;

import org.apache.commons.net.ftp.FTPClient;

import fr.logiciel.analyse.recette.util.Const;

public class FTPAccess extends FTPClient {

	private FTPClient ftp = null;

	public FTPAccess() {
		try {
			ftp(Const.HOST, Const.NAME, Const.PWD);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	public void ftp(String host, String userName, String password) {
		try {
			ftp = new FTPClient();
			System.out.println("InetAddress: " + InetAddress.getLocalHost().getHostAddress());
			System.out.println("DefaultTimeout: " + ftp.getDefaultTimeout());
			ftp.setDefaultTimeout(60 * 1000); //60 sec.
			System.out.println("ConnectTimeout: " + ftp.getConnectTimeout());
			ftp.setConnectTimeout(60 * 1000); //60 sec.
			ftp.connect(host, 21);
			ftp.login(userName, password);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	private void renameFile() {
		try {
			ftp.rename("ARCHIVE.TXT", "ARCHIVE_NEW.TXT");
			ftp.makeDirectory("/test");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public boolean login(String userName, String password) {
		try {
			ftp.login(userName, password);
			return true;
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return false;
	}
	
	public boolean logout() {
		try {
			ftp.logout();
			if (ftp.isConnected()) {
				disconnect();
			}
			return true;
		} catch (Exception e) {
			//Nothing to do
			return false;
		}
	}

	public FTPClient getFtp() {
		return ftp;
	}

	public void setFtp(FTPClient ftp) {
		this.ftp = ftp;
	}
}
```

hoffe dass der code gut lesbar ist... (wie gesagt ich bin anfänger...)


----------



## Ebenius (23. Apr 2009)

Die Ausgaben noch dazu, bitte. Ggf. noch "host" mit ausgeben.

Ebenius


----------



## Badboy (23. Apr 2009)

also der host ist die adresse des webservers: es handelt sich um einen XC10 von crouzet. ist ein ganz kleiner.
seine adress ist hier im netzwerk die 10.0.0.158 (wie oben beschrieben) . der laptop von dem ich arbeite hat die adresse (hier im netzwerk) 10.0.0.41

die ausgaben mit dazu? den satz versteh ich so nicht? wenn damit gemeint ist welche daten ich von dem server runterlade dann ist das eine .txt datei...


----------



## Ebenius (23. Apr 2009)

Badboy hat gesagt.:


> die ausgaben mit dazu? den satz versteh ich so nicht? wenn damit gemeint ist welche daten ich von dem server runterlade dann ist das eine .txt datei...


Ich meine die mit System.out.println (etc) erzeugten Ausgaben.

Ebenius


----------



## Badboy (23. Apr 2009)

Ebenius hat gesagt.:


> Ich meine die mit System.out.println (etc) erzeugten Ausgaben.
> 
> Ebenius



inetadress: 10.0.0.41
DefaultTimeout: 0
ConnectTimeout: 0

da ist das ja mache bevor ich die werte Änder...
wenn ich aber danach einen test mache sind die beide wie gewollt auf 60000(aber das war ja nur um zu sehen ob das kein problem war... (brauche ich jetzt eigentlich nicht mehr)


----------



## Ebenius (23. Apr 2009)

Hmm. Den StackTrace (_ex.printStackTrace()_) hätte ich mir schon auch noch angesehen. Und bau doch zur Sicherheit in Zeile 25 noch das ein: 
	
	
	
	





```
System.out.println("Server: " + userName + '@' + host);
```

Ebenius


----------



## Badboy (23. Apr 2009)

Ebenius hat gesagt.:


> Hmm. Den StackTrace (_ex.printStackTrace()_) hätte ich mir schon auch noch angesehen. Und bau doch zur Sicherheit in Zeile 25 noch das ein:
> 
> 
> 
> ...



hi ich habe die zeile gerade eingefügt und dann kommt das als ausgabe...
Server: ftp1@192.168.123.158
InetAddress: 10.0.0.41
DefaultTimeout: 0
ConnectTimeout: 0

was ich nicht versteh...
ich definiere den host als ein 10.0.0.158 in meinen konstanten...
die adresse die hier angegeben ist ist allerdings die der webserver zu hause haben muss...
ja jetzt seh ich auf jeden fall warum es nicht geht...
aber wo finde ich das jetzt wenn es nicht bei host ist...


----------



## Ebenius (23. Apr 2009)

Aha. Da haben wir ja den Schuldigen.  Wie führst Du den Code aus? Aus Eclipse? NetBeans? Von der Kommando-Zeile?

Ebenius


----------



## Badboy (24. Apr 2009)

ich führe den code in eclipse aus.

ich war mal so frei alles zu reinstallieren... werde jetzt direkt in einer stunde mal testen ob das dann auch in der firma läuft aber hoffe ich doch mal schwer...
halte euch auf jeden fall auf dem laufenden


----------



## Badboy (24. Apr 2009)

hi um den Thread abzuschliessen...
ich weis nicht warum aber das programm war nicht mehr änderbar...
ich konnte in eclipse alles ändern wurde aber nicht angenommen... wie zum beispiel die geänderte adresse
ich hab alles neu installiert und jetzt klappt es einwandfrei...

vielen dank an alle für eure hilfe und vor allen an ebenius

auf jeden fall ein forum mit kompetenz und auch noch geschwindigkeit

Immer wieder gerne...


----------

