Obtenir l'adresse ip externe.

Résolu
SoftReaver Messages postés 12 Statut Membre -  
 softreaver -
Bonjour,

Connaissez vous une dll, ou une commande de l'API windows me permettant d'obtenir l'adresse ip externe du pc (celui où le programme serait executé), j'arrive a avoir l'adresse local mais pas moyen d'avoir l'adresse externe :s

merci, @ bientot sur le net :)

P.S. : Pour ceux qui aurait des doute : non ce n'est en aucun cas pour de la frode que je veut l'adresse ip externe mais je suis en train de bosser sur un jeu en réseaux, ...

7 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    En fait avec windos lorsque j'installe "Front Page" , celui-ci installe aussi une version disons très "légère" de IIS, un mini serveur web, or avec linux il est tout aussi probable qu'une installation de "PHP", fournirait aussi un mini-serveur Apache.

    ainsi une simple variable qui interroge le serveur en php nous donne l'adresse IP, je ne connais pas PHP mais j'ai un exemple à citer :
    <html>
    <head>
    <title>AdresseIP</title>
    </head>
    <body>
      <center>
        <? $domain = getenv("REMOTE_ADDR"); echo $domain; ?>
      </center>
    </body> 
    </html>
    


    je ne suis pas sur du résultat, c'est un exemple !!!

    sous windows j'ai moi-même buté pour trouver et j'ai contourné avec cette page html :
    <html>
      <head>
        <title>ADRESSE IP</title>
    
          <script language="JavaScript">
    
            var Contenu = null;
            var adrip = "";
            var position1 = "CRIPT>";
            var position2 = "</CEN";
            function LirePage()
              {
                 Contenu = document.body.innerHTML;
                 //alert (Contenu);
                 adrip = Contenu.substring(((Contenu.indexOf(position1)) + 8),((Contenu.indexOf(position2)) - 1));
                 //alert (adrip);
                 window.clipboardData.setData("Text", adrip);
              }
        </script>
    
      </head>
    
      <body onLoad="JavaScript:LirePage()">
        <center>
          <script id='adr-ip' type="text/javascript" src="http://www.actulab.com/affiche-ip.php" language="JavaScript"></script>
        </center>
      </body>
    
    </html>
    


    le simple fait d'ouvrir et de fermer cette page html et tu obtiens l'adresse IP dans le presse papier, ne reste qu'a coller !

    Lupin
    4
  2. SoftReaver Messages postés 12 Statut Membre 1
     
    alors là vraiment merci, c'est exactement ce qu'il me fallait, j'essaye ça tout de suite, je vous tient au courant ;)
    1
  3. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    je ne comprends pas trop ta question...

    Si tu souhaites l'IP d'une machine connectée sur ton ordinateur, pas de problème, les commandes réseau netstat et autres te la donneront...

    Tu peux également l'avoir si l'ordinateur en question est connecté sur un serveur web (en php, il existe une variable qui la renvoie)...
    0
  4. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Le poblème pour avoir l'adresse Ip externe (entendant par là l'adresse publique d'une machine ou d'un réseau local sur internet) c'est que maintenant, les gens sont souvent connectés derrière des modems routeur. Donc les fonctions de l'api windows ne sont pas toujours adaptées puisque l'ordinateur ne sais pas necessairement quelle est sont adresse sur internet.

    Donc je ne vois pas mieux que se connecter sur un site internet qui renvoie l'adresse Ip publique.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. SoftReaver Messages postés 12 Statut Membre 1
     
    Apprament il y a mal entendu, bon je récapitule le tout :

    En faite, je veut que mon programme récupére l'adresse IP externe de la machine sur lequel il est en train de tourner, pourquoi? c'est parceque je développe avec un ami, un jeu en réseau, et si par exemple le jeu doit créer une partie en réseau, il decra envoyer l'adresse IP externe (de la machine sur lequelle la partie sera créer) à ma base de donnée MySQL et ainsi tous les autres joueur qui voudron le rejoindre pourrons se connecter( enfin le programme client) au serveur grâce à cette adresse IP.

    donc je veut l'adresse IP externe de la machine sur lequelle est démarrer le programme. donc moi si possible je demande le nom d'un dll qui serais susébtible de faire ca

    (et en se qui concerne les proxy et autre, le problème serais réglé car comme on récupér l'adresse en local (enfin je pense :s)
    0
  7. SoftReaver Messages postés 12 Statut Membre 1
     
    C'est bon je confirme ca marche, merci beaucoup :)
    0
  8. maxou2009
     
    Hello,
    Je me dirais que cela ne fonctionne pas du tout car l'ip qui est donnée n'est pas du tout la bonne !
    0
    1. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Actuellement tu es connecté avec une adresse qui commence par 81.252...

      C'est ce que tu cherches ou pas ?
      0
      1. softreaver > blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Salut à tous et merci pour vos réponses.

        Ca fait longtemp que j'avais posé cette questions, maintenant j'ai fait une dll avec pure basic tout seul qui permet de récupérer l'adresse ip externet à partir d'un script PHP

        2 fonctions :
        String = LocalIP()
        et
        String = NetIP("Adresse du scripte PHP")

        voici le code source

        
        Global MyIP.l
        Global IP.s
        Global Result.b
        
        Result = InitNetwork()
        
        
        ProcedureDLL.s LocalIP()
        
        If Result = 1
        
          ExamineIPAddresses()
        
          MyIP = NextIPAddress()
          IP = IPString(MyIP)
        
          ProcedureReturn IP
        Else
          ProcedureReturn "Local IP null"
        EndIf
        
        EndProcedure
        
        
        Procedure.s OpenURL(Url.s, OpenType.b)
        isLoop.b=1
          INET_RELOAD.l=$80000000
          hInet.l=0: hURL.l=0: Bytes.l=0
          Buffer.s=Space(2048)
         
          hInet = InternetOpen_("PB@INET", OpenType, #Null, #Null, 0)
          hURL = InternetOpenUrl_(hInet, Url, #Null, 0, INET_RELOAD, 0)
         
          Repeat
           
            Delay(1)
            InternetReadFile_(hURL, @Buffer, Len(Buffer), @Bytes)
            If Bytes = 0
              isLoop=0
            Else
              res.s = res + Left(Buffer, Bytes)
            EndIf
          Until isLoop=0
          InternetCloseHandle_(hURL)
          InternetCloseHandle_(hInet)
          ProcedureReturn res
        EndProcedure
        
        
        ProcedureDLL.s NetIP(URL.s)
          
          HTML.s = OpenURL(URL, 1)
          debut.l = FindString(HTML,"IP : ",1) + 5
          fin.l = FindString(HTML,"END",1)
          netip.s = Mid(HTML,debut,(fin - debut))
          
          If netip = ""
            ProcedureReturn "Net IP null"
          Else
            ProcedureReturn netip
          EndIf
          
        EndProcedure
        
        


        Voila, a plus
        0