11
votes

Comment vérifier la connexion FTP?

Y a-t-il un moyen simple et rapide de vérifier qu'une connexion FTP (inclut l'hôte, le port, le nom d'utilisateur et le mot de passe) est valide et fonctionne? J'utilise c #. Merci.


1 commentaires

Assurez-vous d'accepter une réponse appropriée à celle-ci.


6 Réponses :


2
votes

Utilisez soit System.net.ftpwebrequest ou System.net.webrequestMethods.ftp Pour tester votre connexion en utilisant vos identifiants de connexion. Si la requête FTP échoue pour une raison quelconque, le message d'erreur approprié sera renvoyé indiquant le problème (authentification, incapable de se connecter, etc.)


0 commentaires

2
votes

vous pouvez essayer d'utiliser system.net.ftpwebrequest et simplement vérifier la méthode getResponsestream .

alors quelque chose comme xxx


1 commentaires

-1 parce que ftpwebrequest ne contient pas getResponsestream méthode et ftpwebrequest ne contient pas de constructeur sans paramètres (ne contient pas de constructeur public non plus).



18
votes

Essayez quelque chose comme ceci:

FtpWebRequest requestDir = (FtpWebRequest)FtpWebRequest.Create("ftp://ftp.google.com");
requestDir.Credentials = new NetworkCredential("username", "password");
try
{
     WebResponse response = requestDir.GetResponse();
     //set your flag
}
catch
{
}


4 commentaires

J'ai mis en œuvre quelque chose de similaire à votre solution Anishmarokey, mais cela semble échouer lorsqu'il s'agit de sécuriser les sites FTP. Avez-vous une idée de la manière de tester une connexion pour les FTPS? Merci.


Pour que ce code fonctionne, vous devez également définir la méthode de la demande (c'est-à-dire DemandeDir.Method = WebRequestMethods.ftp.listdirectoryDétails).


@Chrismitchell .NET ne supporte pas encore SFTP, mais il existe des bibliothèques telles que ssh.net qui ont cette fonctionnalité


@Flowy Il suffit d'ajouter: demandeDir.enablessl = true;



7
votes

C'est la méthode que j'utilise, laissez-moi savoir si vous connaissez un meilleur.

/ * hola Este Es el Metodo que utilizo Si conoces Uno Mejor Hasmelo Saber Ubirajara 100% mexicano isc.erthal@gmail.com * / xxx


1 commentaires

Stackoverflow utilise l'anglais comme langue principale.



-2
votes

Ceci est du site MSDN pour afficher des fichiers à partir d'un serveur

public static bool DisplayFileFromServer(Uri serverUri)
{
// The serverUri parameter should start with the ftp:// scheme. 
if (serverUri.Scheme != Uri.UriSchemeFtp)
{
    return false;
}
// Get the object used to communicate with the server.
WebClient request = new WebClient();

// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
try 
{
    byte [] newFileData = request.DownloadData (serverUri.ToString());
    string fileString = System.Text.Encoding.UTF8.GetString(newFileData);
    Console.WriteLine(fileString);
}
catch (WebException e)
{
    Console.WriteLine(e.ToString());
}
return true;
}


0 commentaires

3
votes

Cela pourrait être utile.

  public async Task<bool> ConnectAsync(string host, string user, string password)
    {
        try
        {
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(host);
            request.Credentials = new NetworkCredential(user, password);
            request.UseBinary = true;
            request.UsePassive = true;
            request.KeepAlive = false; // useful when only to check the connection.
            request.Method = WebRequestMethods.Ftp.ListDirectory;
            FtpWebResponse response = (FtpWebResponse) await request.GetResponseAsync();
            return true;
        }
        catch (Exception)
        {
            return false;
        }            
    }


0 commentaires