Fonction test de connexion FTP

Résolu
mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012 - 12 août 2009 à 22:31
mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012 - 17 août 2009 à 14:15
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

cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011
13 août 2009 à 16:59
#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;
}

3
Kotomine Messages postés 112 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 5 novembre 2009
13 août 2009 à 10:24
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
0
mohdaef Messages postés 68 Date d'inscription vendredi 23 novembre 2007 Statut Membre Dernière intervention 14 mars 2012
17 août 2009 à 14:15
Bonjour

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

Encore merci;
0
Rejoignez-nous