[C#] Adresse IP externe

Fermé
Orci76 Messages postés 92 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 21 avril 2015 - Modifié par Orci76 le 22/01/2012 à 05:25
Orci76 Messages postés 92 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 21 avril 2015 - 22 janv. 2012 à 05:44
Bonjour,

Je souhaiterais savoir comment obtenir son adresse IP externe à partir d'un programme C# en console afin de la stocker dans une variable de type "IPAddress".
J'ai déjà trouvé par plusieurs fois les source suivante:

IPHostEntry ipHostEntry = Dns.GetHostByName(Dns.GetHostName());   
IPAddress ipAddress = ipHostEntry.AddressList[0];   
Console.WriteLine(ipAddress.ToString());

ou

IPHostEntry ipHostEntry = Dns.Resolve(Dns.GetHostName());   
IPAddress ipAddress = ipHostEntry.AddressList[0];   
Console.WriteLine(ipAddress.ToString());

cependant, dans les deux cas, l'adresse IP qui m'est retourné est mon IP locale.

Merci d'avance pour votre réponse.

EDIT: J'avais bien vu une vidéo et maintenant une réponse disant qu'on pouvais aller avec un WebClient aller voir sur un site comme 'http://whatismyip.org/', cependant, je ne vois pas vraiment comment faire pour ensuite mettre la string obtenu dans ma variable IPAdress...

1 réponse

Orci76 Messages postés 92 Date d'inscription lundi 20 décembre 2010 Statut Membre Dernière intervention 21 avril 2015 5
22 janv. 2012 à 05:44
Bon, je me réponds à moi-même pour la méthode dont je parlais dans mon EDIT, cependant, si quelqu'un pourrait encore répondre par une technique plus "classique", ce serait pas mal, merci.

Vous pouvez obtenir le contenu d'un site en faisant:

String source = "";
WebRequest request = WebRequest.Create("http://www.site.com/ip.php");
using (WebResponse response = request.GetResponse())
{
     using (StreamReader stream = new   StreamReader(response.GetResponseStream()))
    {
        source = stream.ReadToEnd();
    }
}


et convertir la chaîne en variable de type "IPAddress" avec:

IPAddress ipAddress = System.Net.IPAddress.Parse("192.168.0.4");
En espérant que ça puisse vous servir.
0