IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Etablir une connexion sur un serveur en telnet


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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:

    Nom : 352545.jpg
Affichages : 256
Taille : 35,3 Ko

  2. #2
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Pour tester les applications réseau, l'utilisation d'un outils de sniffing est extrêmement recommandé.
    Je te conseille WireShark (anciennement Ethereal), qui vas enregistré tous les packets qui passe sur ta carte reseau.
    En gros tu prend un logiciel telnet tu fais ta connexion, puis tu fais la même manipulation avec ton soft et tu regarde les différences.
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    J'y ai déjà pensé, malheureusement c'est sur le matos de ma boite et je ne peux rien y installer...

  4. #4
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Pas de bras pas de chocolats !
    Pourquoi ne pas faire de l'assembleur, car l'admin ne veut pas installé un compilateur?
    Tu vas voir ton responsable et tu lui dit que ton outil est indispensable, sinon tu vas mettre 15 jours de plus à développer...
    Sinon, tu peux faire l'inverse créer un faux serveur telnet pour qui reçoivent les packet de l'appli a copier!
    Sinon test d'utilisé strlen au lieu de sizeof, pour envoyé des chaines de caractere
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Je bosse dans une très grosses structure, et le serveur n'est pas installé sur mon site, je doute que l'admin ou les admins accepte d'installer quoique ce soit dessus juste pour tester un programme qui va servir à une équipe de 5 personnes !
    Sinon ton idée de faux serveur m'intéresse, je vais essayer ça !

  6. #6
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Salut

    Citation Envoyé par ThomasMC Voir le message
    Je bosse dans une très grosses structure, et le serveur n'est pas installé sur mon site, je doute que l'admin ou les admins accepte d'installer quoique ce soit dessus juste pour tester un programme qui va servir à une équipe de 5 personnes !
    Sinon ton idée de faux serveur m'intéresse, je vais essayer ça !
    Tu développes en remote ? J'ai du mal à croire ça, même dans une grosse structure (c'est mon cas aussi), quel intérêt de développer en C++ en remote ? Tu as bien un PC que tu utilises, qui compile et exécute le code que tu écris, non ? Tu peux faire installer Wireshark sur ta machine et faire comme dit themadmax en sniffant les paquets sortants.

    Citation Envoyé par themadmax Voir le message
    Sinon, tu peux faire l'inverse créer un faux serveur telnet pour qui reçoivent les packet de l'appli a copier!
    Dans le cas du choix de cette solution, pourquoi ne pas simplement installer un vrai serveur, mais sur la machine de dev, ou d'un autre dev ?
    Find me on github

Discussions similaires

  1. Soucis pour la connexion sur mon serveur telnet
    Par Nlice dans le forum Boost
    Réponses: 0
    Dernier message: 30/04/2015, 18h04
  2. Réponses: 22
    Dernier message: 30/06/2011, 16h48
  3. Réponses: 5
    Dernier message: 23/08/2010, 19h06
  4. etablir une connexion entre eclipse et serveur Apache
    Par killer_instinct dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 19/02/2007, 15h10
  5. Comment etablir une connexion distante sur une bd sql server
    Par sessime dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/11/2004, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo