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++Builder Discussion :

Passage d'un réseau local à internet


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut Passage d'un réseau local à internet
    Salut

    Voilà mon problème. J'ai créé une application en fait c'est un jeux qui se joue avec quatre joueurs. On peut jouer en vis à vis (hotseat) ou à distance en réseau local (j'utilise les socket).
    Maintenant je voudrais que les joueurs puissent jouer à de plus grandes distances donc à priori via internet.
    Comment puis je faire?

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Il faut ouvrir le port du routeur et indiquer l'adresse ip de ce routeur

  3. #3
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par pottiez Voir le message
    Il faut ouvrir le port du routeur et indiquer l'adresse ip de ce routeur
    Pourrais tu être plus précis. Par exemple en me disant comment il est possible de récupérer l'adresse du routeur. Comme il existe plusieurs de mode de connexion à internet (ADSL, passage par un proxy entre autre)

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Ca c'est a toi de voir, ça ne peut pas, a priori, être fait par code, il faut que ce soit l'administrateur réseaux qui le face, récupéré l'adresse IP par contre ca doit pouvoir ce faire, certain petit programme le font.

  5. #5
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Effectivement je sais récupérer mon adresse IP mais je ne sais pas si ça suffit. Si par exemple je récupère l'adresse IP de mon PC à mon domicile et que de mon boulot je fait un ping je crois que la réponse sera négative. Je sais par contre que les adresse MAC sont uniques mais même si je la récupère je ne sais pas trop comment je vais pouvoir l'utiliser avec mes sockets

  6. #6
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Tu ne peut pas utiliser ton adresse MAC avec les sockets.
    L'adresse que tu récupère, ne doit pas être celle de ton PC mais celle de la machine qui se connecte a Internet, si c'est un modem ADSL sur ton PC alors il doit être détecté comme une carte réseaux et ce doit alors être l'adresse IP de ton PC, mais si c'est une Box (Livebox, Freebox,...) par exemple alors la c'est adresse IP de la Box du coté Internet (attention les box on deux interface (minimum) une réseaux internet et une autre réseaux local)

  7. #7
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Sinon regarde du coté des DNS dynamique avec Dyndns par exemple.

  8. #8
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    J'ai trouvé un article sur la théorie des réseaux locaux et étendus je vais potasser ça et j'y trouverais peut être une solution.

  9. #9
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    tu dois configurer la NAT ou DMZ (c'est identique) du routeur !

    c'est plus souvent la NAT

    1°)

    Ton socket doit se connecter sur l'ip WAN de ton adversaire ou meilleur
    son dns ( voir no-ip.com ) car l'ip WAN change le dns non !

    2°)
    ton adversaire devra configurer la NAT son routeur en y mettant son ip du pc et le port utilisé


    3°)
    il est toujours possible de configurer un routeur via programmation
    ou telnet car certain router son configurer via leur cdrom.

    4°)
    autre solution :
    Utiliser un serveur ou les clients se connectent pour y lire les informations que ton jeux aurais du envoyer ! Donc plus d'envoi a travers les routeurs.


    @+

  10. #10
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Bily.sdi Voir le message

    Ton socket doit se connecter sur l'ip WAN de ton adversaire ou meilleur
    son dns ( voir no-ip.com ) car l'ip WAN change le dns non !

    2°)
    ton adversaire devra configurer la NAT son routeur en y mettant son ip du pc et le port utilisé
    Mon problème est de récupérer l'IP ou le dns et le nom de la machine

    3°)
    il est toujours possible de configurer un routeur via programmation
    ou telnet car certain router son configurer via leur cdrom.
    Si tu as des exemple je suis preneur. J'ai vu que pour ma livebox (avec liaison wifi) il y avait possibilité de configurer des éléments comme le routeur ainsi qu'un DNS Dynamique.
    4°)
    autre solution :
    Utiliser un serveur ou les clients se connectent pour y lire les informations que ton jeux aurais du envoyer ! Donc plus d'envoi a travers les routeurs.
    Là ce n'est pas un problème puisque mon jeu fonctionne déjà avec un serveur mais en local. Je suppose qu'il faut mettre le serveur sur une page web ou quelque chose comme ça. Mais là je ne saiis pas faire.

    En tout cas merci pour toutes ces informations.

  11. #11
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    récupérer l'ip de ta machine

    Unit1.h
    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
     
    //---------------------------------------------------------------------------
     
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
     
    #include <iostream.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <winsock.h>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:    // Composants gérés par l'EDI
            TEdit *Edit1;
            TButton *Button1;
            void __fastcall Button1Click(TObject *Sender);
    private:    // Déclarations utilisateur
    public:        // Déclarations utilisateur
     
              void AfficheLocalIP(void) ;
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    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
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      AfficheLocalIP() ;
    }
     
    void TForm1::AfficheLocalIP(void)
    {
      struct sockaddr_in sin ;
      struct hostent * phe ;
      char FAR buffer[64] ;
     
      WORD wVersionRequested;
      WSADATA wsaData;
      int err;
     
      wVersionRequested = MAKEWORD(1, 1);
      err = WSAStartup(wVersionRequested, &wsaData);
     
        if (err != 0)
        {
          //cerr << "Impossible de trouver winsock.dll" ;
          Edit1->Text = "Impossible de trouver winsock.dll";
        }
        gethostname(buffer, sizeof(buffer)) ;
        phe = gethostbyname(buffer) ;
     
        if(phe==NULL)
        {
          //cerr << "Erreur : pointeur nul";
          Edit1->Text = "Erreur : pointeur nul";
          system("PAUSE");
          exit(1) ;
        }
     
      memcpy(&sin.sin_addr.s_addr, phe->h_addr, phe->h_length);
     
      //cout << "Hote : " << buffer << endl ;
      Edit1->Text = buffer;
     
      //cout << "Adresse locale : " << inet_ntoa(sin.sin_addr)<< endl ;
      Edit1->Text  =   Edit1->Text + "  " + AnsiString(inet_ntoa(sin.sin_addr));
     
      WSACleanup() ;
    }
    si tu met un dns tu n'a plus besoin de connaitre l'ip !
    tu utilise le dns pour communiquer ! Dans le dns se cache ip actuelle.

    je n'ai pas beaucoup d'info sur ton application et ce que tu utilises !

    Bonne chance

Discussions similaires

  1. Comment joindre un réseau local à internet.
    Par ceroxono dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 18/05/2009, 19h12
  2. 2 accès Internet sur un réseau local
    Par MagicManu dans le forum Hardware
    Réponses: 6
    Dernier message: 12/06/2008, 15h38
  3. Utiliser JADE sans internet ni réseau local
    Par moumoulle dans le forum Programmation par agent
    Réponses: 3
    Dernier message: 06/03/2008, 10h13
  4. Réponses: 8
    Dernier message: 23/06/2007, 10h38
  5. Réponses: 9
    Dernier message: 14/01/2007, 07h51

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