Fonction test de connexion FTP [Résolu]

Signaler
Messages postés
68
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
14 mars 2012
-
Messages postés
68
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
14 mars 2012
-
Bonsoir

Je recherche depuis un certain une fonction bouléène qui à un nom d'utilisateur, un mot de passe et une Adresse IP de serveur, donnés en paramètre renvoi vrai si la connexion est réussi, faux sinon.

J'ai tenté à plusieur reprises de réaliser cette fonction mais sans succès, j'aurais donc voulu savoir si vous n'auriez un code permettant de réaliser ceci où bien un lien pertinent.

Merci d'avance pour l'aide que vous pourrez m'apporter.

3 réponses

Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
#include <wininet.h>
#include <stdio.h>

//---------------------------------------------------------------
BOOL testFTP(const char *serv, const char *user, const char *pass)
{
  BOOL bOk = FALSE;
  HINTERNET hInet, hFtp;

  if((hInet = InternetOpen("TestFTP", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0)) != INVALID_HANDLE_VALUE)
  {
    if((hFtp = InternetConnect(hInet, serv, INTERNET_DEFAULT_FTP_PORT, user, pass, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0)) != INVALID_HANDLE_VALUE)
    {
      char  s[MAX_PATH];
      DWORD n = MAX_PATH;

      bOk = FtpGetCurrentDirectory(hFtp, s, &n);
      InternetCloseHandle(hFtp);
    }
    InternetCloseHandle(hInet);
  }

  return bOk;
}

//---------------------------------------------------------------
int main(void)
{
  printf("Connexion... ");
  printf("%s\n", testFTP("IP_ou_DNS", "login", "password") ? "Ok" : "Echec");
  return 0;
}

Messages postés
112
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
5 novembre 2009

En quelques points clefs:
* Ouvre une connection TCP vers l'ip , au port 21
* Prépare ta chaine qui va être envoyée au serveur FTP :

char buff[6000];
sprintf(buff,"USER %s\r\nPASS %s\r\n",ton_login,ton_password);


* Envoie buff au serveur
* Receptionne toutes les données du serveur
* Cherche dans la réponse du serveur, la présence de la chaine de caractères "\n230 " qui indique le code "Login Successfull"


;I'm just keeping the hopeless cross to increase the meaninglessness
Messages postés
68
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
14 mars 2012

Bonjour

Merci pour votre aide j'ai correctement pu réaliser la fonction cela fonctionne bien.

Encore merci;