1 pièce(s) jointe(s)
Etablir une connexion sur un serveur en telnet
Bonjour :) !
Je programme actuellement un petit outil pour me connecter à un serveur en telnet (je n'ai pas le choix du protocole) pour mon travail.
J'ai utilisé un tuto trouvé sur un autre site pour réaliser mon code (j'ai remplacé les adresses et logins par des étoiles pour des raisons évidentes ;) ) !
Actuellement je bloque dès l'authentification, voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
| #include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
typedef int socklen_t;
using namespace std;
int main(void)
{
WSADATA WSAData;
int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
if(!erreur)
{
// Création de la socket
sock = socket(AF_INET, SOCK_STREAM, 0);
// Configuration de la connexion
sin.sin_addr.s_addr = inet_addr("**.**.***.***");
sin.sin_family = AF_INET;
sin.sin_port = htons(23);
cout << "Connexion en cours...";
Sleep(2000);
cout << endl;
// Si le client arrive à se connecter
if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) == 0)
{
cout << "Connexion a " << inet_ntoa(sin.sin_addr) << " sur le port " << htons(sin.sin_port) << " reussi." << endl;
Sleep(1500);
char buffer[1500];
cout << "Authentification en cours..." << endl;
char* login = "*******%lf";
int login_2 = send(sock, login, sizeof(login), 0);
char* mdp = "******** %lf";
int mdp_2 = send(sock, mdp, sizeof(mdp), 0);
if(recv(sock, buffer, sizeof(buffer), 0) != SOCKET_ERROR)
{
cout << endl << buffer << endl;
Sleep(1000);
}
if (login_2 != SOCKET_ERROR)
{
cout << endl << endl << login << endl;
Sleep(1500);
if (send(sock, mdp, sizeof(mdp), 0) != SOCKET_ERROR)
{
cout << endl << mdp << endl;
Sleep(1500);
cout << "Authentification reussi." << endl;
}
else
{
cout << "Echec." << endl;
system("pause");
EXIT_FAILURE;
}
}
else
{
cout << "Echec." << endl;
system("pause");
EXIT_FAILURE;
}
Sleep(1500);
if(recv(sock, buffer, sizeof(buffer), 0) != SOCKET_ERROR)
{
cout << endl << buffer << endl;
Sleep(1000);
}
}
else
{
cout << "Impossible de se connecter" << endl;
}
// On ferme la socket précédemment ouverte
closesocket(sock);
WSACleanup();
}
system("pause");
return EXIT_SUCCESS;
} |
Et le résultat:
Pièce jointe 86580