C# | recuperer l adresse public de sa machine [Résolu]

Signaler
Messages postés
72
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2009
-
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Statut
Membre
Dernière intervention
24 mai 2010
-
bonjour,
je suis en train de realiser une appli basée sur un client/serveur.
Dans mon code, je dois récupéré l'adresse public de la machine.
Pour ce faire, j'utlise IPAddress, et j ai bien l'ip de la machine.

Probleme, quand une machine est en reseau, je recupere l'adresse reseau (192.168.0.2 par exemple) et non l'ip (public) de ma connection internet. Je voudrai pouvoir recuperer cette adressse :) et ainsi pouvoir faire mes traitement comme la communiquer a d autres clients.

Merci de m'aider

5 réponses

Messages postés
289
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
28 février 2009
2
Voilà il est 2h30 du mat', et je viens à ta rescousse !!!

<hr size="2" width="100%" />        public static string GetSourceCode(string url)
        {
            HttpWebResponse httpWResponse = null;
            StreamReader sr = null;
            string ans = null;
            try

            {
                HttpWebRequest httpWRequest = (HttpWebRequest)WebRequest.Create(url);
                httpWResponse = (HttpWebResponse)httpWRequest.GetResponse();
                sr = new StreamReader(httpWResponse.GetResponseStream(), Encoding.GetEncoding("iso-8859-1"));
                ans = sr.ReadToEnd();

            }

            catch

            {
                ans = null;
            }

            finally

            {
                if (httpWResponse != null) httpWResponse.Close();
                if (sr != null) sr.Close();
            }

            return ans;
        }
       
        public string GetIP(string PageSC){
            string Ans = PageSC.Substring(PageSC.IndexOf("<TITLE>") + 24,PageSC.IndexOf("</TITLE>") - 24 - PageSC.IndexOf("<TITLE>"));;

            return Ans;
        }
<hr size="2" width="100%" />
Pour l'utiliser :  MessageBox.Show(GetIP(GetSourceCode("http://whatismyip.com")));

et n'oublie pas les directives d'assembly :
using System.Net;

using System.IO;
using System.Text;

Voili voilou, j'espère que ça t'aura aidé ! ( PS:GetSourceCode est un snippet du réseau CS, t'aurais pû chercher quand même... )

-=Ar$£nik=-
Messages postés
72
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2009

Je te merci :)
je vais tester ca
Messages postés
84
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
8 janvier 2013
2
salut ; g vue ton code source pour l'@ ip public et je l'éssaye mais j'arrive pas a afficher l'@ ip et je comprend pas cette partie 
"" string Ans = PageSC.Substring(PageSC.IndexOf("<TITLE>") + 24,PageSC.IndexOf("</TITLE>") - 24 - PageSC.IndexOf("<TITLE>"));;""
explique moi SVP et merci.
Messages postés
84
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
8 janvier 2013
2
salut ; toujours g des pbs au niveau de cette partie du code "string Ans = PageSC.Substring(PageSC.IndexOf("<TITLE>") + 24,PageSC.IndexOf("</TITLE>") - 24 - PageSC.IndexOf("<TITLE>"));;"
il me génère une exeption ;alors quoi faire aidez moi SVP
merci.
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Statut
Membre
Dernière intervention
24 mai 2010
1
Bein, très vieux sujet et je débarque en 2009 pour répondre, mais ça peut toujours servir.

Le code source se base sur le site whatismyip.com. Auparavant, ce site affichait l'adresse IP publique dans le titre de la fenêtre du navigateur. Ce code source récupère le titre (flux HTML) défini entre la balise HTML <title> ouvrante et </title> fermante.

Actuellement le site a changé sa philosophie et n'affiche plus l'adresse IP publique dans le titre de la fenêtre du navigateur... D'où il faut chercher autre chose.