Obtenir l'adresse ip externe.

Résolu/Fermé
SoftReaver Messages postés 11 Date d'inscription mercredi 15 février 2006 Statut Membre Dernière intervention 5 novembre 2008 - 3 mai 2006 à 22:15
 softreaver - 21 nov. 2008 à 15:40
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

Utilisateur anonyme
5 mai 2006 à 23:28
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
SoftReaver Messages postés 11 Date d'inscription mercredi 15 février 2006 Statut Membre Dernière intervention 5 novembre 2008 1
6 mai 2006 à 12:57
alors là vraiment merci, c'est exactement ce qu'il me fallait, j'essaye ça tout de suite, je vous tient au courant ;)
1
blux Messages postés 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 318
4 mai 2006 à 09:00
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
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
4 mai 2006 à 13:53
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SoftReaver Messages postés 11 Date d'inscription mercredi 15 février 2006 Statut Membre Dernière intervention 5 novembre 2008 1
5 mai 2006 à 17:19
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
SoftReaver Messages postés 11 Date d'inscription mercredi 15 février 2006 Statut Membre Dernière intervention 5 novembre 2008 1
7 mai 2006 à 15:45
C'est bon je confirme ca marche, merci beaucoup :)
0
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
blux Messages postés 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 3 318
21 nov. 2008 à 14:15
Actuellement tu es connecté avec une adresse qui commence par 81.252...

C'est ce que tu cherches ou pas ?
0
softreaver > blux Messages postés 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024
21 nov. 2008 à 15:40
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