Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment récupérer son IP en C ?

Je cherche un code qui soit multi plateformes, et qui permette d'afficher l'ip d'un PC

    23 juillet 2006 à 11:51:35

    Bonjour à tous !

    Ma question peut paraitre simple en apparence, mais ca fait une heure que je cherche sur le net, et po moyen de trouver une réponse satisfaisante.

    Je cherche un code en C ou C++ qui permette de connaitre l'ip (externe) d'un PC. C'est à dire, l'ip que devra utiliser un autre utilisateur pour se connecter à ce PC depuis internet.

    Le problème, c'est que la plupart des codes sont fait pour windows exclusivement, ou alors que linux, ou alors en PERL, ou alors utilisant des programmes exotiques spécifiques devant etre installés sur la machine.

    CA DOIT POURTANT PAS ETRE COMPLIQUE !!! Loool mais po moyen de trouver.

    Apparement, une solution serait de se connecter à un serveur externe et de lui demander notre adresse IP.

    Mais pour se connecter à ce serveur... et quel protocole de communication utiliser... no answer..

    Voila, donc si quelqu'un pouvait m'aider :):):)

    Merci beaucoup d'avance !!

    @++

    Piwaï

    PS : ca me permettra de passer 2H4U en multi...
    • Partager sur Facebook
    • Partager sur Twitter
      23 juillet 2006 à 12:06:48

      Il y'a plusieur technique d'abord:il existe des types de variables fait pour contenir des adresses ip,et des fonctions pour les faires contenir.

      Tu peu également faire une requete a un sites,ou a une bete page php que tu livre avec.Cette pagge la récupere et l'envoie au programme.

      (si tu prend la deuxieme mets pas des trucs qui sauvent les scors dans un BDD mysql)

      dans la deuxieme methode il faut effectuer une requete HTTP je crois(elle peut renvoyer des données POST ou GET).
      • Partager sur Facebook
      • Partager sur Twitter
        23 juillet 2006 à 12:27:49

        Merci pour cette prompte réponse..

        J'avais globalement compris ca, mais je cherche un exemple précis, du code quoi...

        Merci quand meme ;) .
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          23 juillet 2006 à 12:36:09

          Apparremment tu veux faire du reseau...

          utilise les sockets et apprend a te servir de SDL_Net(sur le site de remram) ou winsocks (sur develloppez)

          sinon pour récupérer l'ip ben.. sa ne servira a rien vu que c'est toi qui met l'ip du pc sur le quel tu veux te conencté directement dans ton code.
          • Partager sur Facebook
          • Partager sur Twitter
            23 juillet 2006 à 12:51:38

            Citation : charly90


            sinon pour récupérer l'ip ben.. sa ne servira a rien vu que c'est toi qui met l'ip du pc sur le quel tu veux te conencté directement dans ton code.



            En plus je ne voit que utilitée:une partie "au meilleur score" on peut tres bien rentrer l'ip de l'adversaire.

            Ou bien un meileur score sur un site mysql++ suffira.

            Pour recuperer l'ip dans une variable je ne sait pas comment on s'y prend pour le C++ mais si c'étais de l'action sccript:
            <?php

            if(isset($_POST['envoi'])){
               echo"ip=$_SERVER['REMOTE_ADDR']";
            }
            ?>

            auraitrenvoyer l'adresse ip...Mais sa differe surement en C++(mais tu peut toujours essayer(encodage UFT-8))
            • Partager sur Facebook
            • Partager sur Twitter
              23 juillet 2006 à 21:19:02

              Citation : Piwaï


              Je cherche un code en C ou C++ qui permette de connaitre l'ip (externe) d'un PC. C'est à dire, l'ip que devra utiliser un autre utilisateur pour se connecter à ce PC depuis internet.


              gethostbyname() avec le nom "" (soi-même).

              #include <stdio.h>
              #include <stdlib.h>
              #include "psock/inc/psock.h"
              /* http://mapage.noos.fr/emdel/clib/psock/inc/psock.h */

              int main ()
              {
              #if defined (WIN32)
                 WSADATA wsa_data;
                 int err = WSAStartup (MAKEWORD (2, 2), &wsa_data);

                 if (!err)
                 {
                    puts ("WIN: winsock2: OK");
              #endif

                    struct hostent *p_host = gethostbyname ("");

                    if (p_host != NULL)
                    {
                       printf ("'%s'\n", p_host->h_name);
                       {
                          char **pp = p_host->h_aliases;
                          while (*pp != NULL)
                          {
                             printf ("'%s'\n", *pp);
                             pp++;
                          }
                       }
                       printf ("IPV%d\n", p_host->h_length);
                       {
                          char **pp = p_host->h_addr_list;
                          while (*pp != NULL)
                          {
                             unsigned char *p = *pp;
                             int i;
                             printf ("IP = ");
                             for (i = 0; i < p_host->h_length; i++)
                             {
                                if (i == 0)
                                {
                                   printf ("%u", (unsigned) p[i]);
                                }
                                else
                                {
                                   printf (".%u", (unsigned) p[i]);
                                }
                             }
                             printf ("\n");
                             pp++;
                          }
                       }
                    }
                    else
                    {
                       puts ("unknown host");
                    }
              #if defined (WIN32)
                    WSACleanup ();
                 }
              #endif

                 return 0;
              }
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                24 juillet 2006 à 17:37:06

                Citation : charly90

                Apparremment tu veux faire du reseau...

                utilise les sockets et apprend a te servir de SDL_Net(sur le site de remram) ou winsocks (sur develloppez)

                sinon pour récupérer l'ip ben.. sa ne servira a rien vu que c'est toi qui met l'ip du pc sur le quel tu veux te conencté directement dans ton code.



                Je compte effectivement me servir de SDL_Net, mais il n'y que des fonctions pour se connecter a quelqu'un, mais aucune fonction qui te donne ton IP a TOI. Et si justement ca servira !! Moi je veux que l'utilisateur rentre l'ip vers laquelle il va se connecter. Mais pour que l'autre lui donne son ip, il faut qu'elle soit affichée, jvé pas afficher un message "Tapez ipconfig dans les commandes ms dos" lol ;) .

                -ed- : Merci beaucoup, ca a l'air d'etre ca a première vue. J'espère que le code est cross platform, mais ca en a tout l'air, merci bcp ;) .

                D'autre part, si j'ai dit une connerie et qu'on peut bien obtenir sa propre IP avec SDL_Net, si quelqu'un voulait bien me dire comment... :) .

                Merci beaucoup !!

                @++

                Piwaï
                • Partager sur Facebook
                • Partager sur Twitter

                Comment récupérer son IP en C ?

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown