Je ne parviens pas à obtenir ou à trouver des informations sur l'IP publique de mon routeur. Est-ce parce que cela ne peut pas être fait de cette façon et qu'il faudrait l'obtenir à partir d'un site Web ?
404 sur le second.
Je ne parviens pas à obtenir ou à trouver des informations sur l'IP publique de mon routeur. Est-ce parce que cela ne peut pas être fait de cette façon et qu'il faudrait l'obtenir à partir d'un site Web ?
En utilisant C#, avec webclient, c'est court.
public static void Main(string[] args)
{
string externalIpString = new WebClient().DownloadString("http://icanhazip.com").Replace("\\r\\n", "").Replace("\\n", "").Trim();
var externalIp = IPAddress.Parse(externalIpString);
Console.WriteLine(externalIp.ToString());
}
Ligne de commande (fonctionne à la fois sur Linux et Windows)
wget -qO- http://bot.whatismyipaddress.com
OU
curl http://ipinfo.io/ip
Excellente réponse ! Au fait, j'ai dû appeler Trim()
sur le résultat de http://ipinfo.io/ip
. Il y avait un espace à la fin.
static void Main(string[] args)
{
HTTPGet req = new HTTPGet();
req.Request("http://checkip.dyndns.org");
string[] a = req.ResponseBody.Split(':');
string a2 = a[1].Substring(1);
string[] a3=a2.Split('<');
string a4 = a3[0];
Console.WriteLine(a4);
Console.ReadLine();
}
Faites ce petit tour avec Vérifier l'IP DNS
Utilice HTTPGet
cours que j'ai trouvé sur Goldb-Httpget C#
Avec .Net WebRequest :
public static string GetPublicIP()
{
string url = "http://checkip.dyndns.org";
System.Net.WebRequest req = System.Net.WebRequest.Create(url);
System.Net.WebResponse resp = req.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
string response = sr.ReadToEnd().Trim();
string[] a = response.Split(':');
string a2 = a[1].Substring(1);
string[] a3 = a2.Split('<');
string a4 = a3[0];
return a4;
}
Utiliser un excellent service similaire
private string GetPublicIpAddress()
{
var request = (HttpWebRequest)WebRequest.Create("http://ifconfig.me");
request.UserAgent = "curl"; // this will tell the server to return the information as if the request was made by the linux "curl" command
string publicIPAddress;
request.Method = "GET";
using (WebResponse response = request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
publicIPAddress = reader.ReadToEnd();
}
}
return publicIPAddress.Replace("\n", "");
}
Private string GetPublicIpAddress() { using var client = new WebClient() ; return client.DownloadString(" ifconfig.me").Remplacer.Replace) (" \n ", "") ; }
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Quelle est cette façon de faire ? Essayez-vous de faire cela de manière programmatique ?
1 votes
Avec le CGN, il est possible que votre routeur n'ait pas d'adresse publique.