Originariamente inviato da DydBoy
Se ne parlava giusto ieri.
era qualcosa di questo tipo

codice:
#include <stdio>
#include <winsock2>
#include <stdlib>

#pragma comment (lib, "ws2_32.lib")

#define BUFLEN 512

int main(){
    //VARIABILI
    char recvbuf[BUFLEN];
    int valid;
    int recvbuflen = BUFLEN;
    const char* valid_mex = "User ******** has group access to: apache2";
   
    //INIZIALIZAZZIONE SOCKET
    WSADATA data;
    WSAStartup(MAKEWORD(2,0), &data);
    struct sockaddr_in ftp;
    SOCKET s;
    s = socket(AF_INET, SOCK_STREAM, 0);
   
    //CONFIGURAZIONE CONNESSIONE FTP
    char* host_name = "**********";
    int ip = gethostbyname(host_name);
    char* user = "************";
    char* pass = "*************************";
   
    //PARAMETRI CONNESSIONE
    ftp.sin_family = AF_INET;
    ftp.sin_port = htons(21);
    ftp.sin_addr.s_addr = inet_addr(ip);
   
    //CONNESSIONE FTP
      if (  connect(s, (struct sockaddr*)&ftp, sizeof(struct sockaddr)) == SOCKET_ERROR){
        printf("Errore connessione...");
        closesocket(s);
        system("PAUSE");
      }
   
    //LOG IN FTP
    if (send(s, user, BUFLEN, 0) == SOCKET_ERROR){           
          printf("Impossibile inviare username...");
        closesocket(s);
        system("PAUSE");
      }
   if (send(s, pass, BUFLEN, 0) == SOCKET_ERROR){
          printf("Impossibile inviare password...");
        closesocket(s);
        system("PAUSE");
      }
   valid = recv(s, recvbuf, recvbuflen, 0);
   if (recvbuf == valid_mex){
        printf("Log in effettuato");
        system("PAUSE");
      }
    else{
          printf("Errore nel login...");
          closesocket(s);
          system("PAUSE");
       }
   
   
   
   
}