Comment obtenir son IP public en .Net ?

Comment obtenir son IP public en .Net ? - C#/.NET managed - Programmation

Marsh Posté le 16-08-2017 à 22:27:11    

Bonjour à tous,
 
je cherches à faire en VB.Net à obtenir mon IP public, celui que j'ai sur internet, pas le local 192.168.x.x mais tout ce que je trouves comme code sur google sont des exemples qui se servent de site web comme whatismyip. Je voudrais être indépendant et ne pas me servir de sites web pour avoir mon IP public. Est-ce possible ? quelqu'un aurait-il une idée ? :)
 
merci beaucoup.

Reply

Marsh Posté le 16-08-2017 à 22:27:11   

Reply

Marsh Posté le 16-08-2017 à 23:32:12    

Salut.
 
A zut j'ai cru du VB.net.... désolé.
Je recherche, je cherche Gethostbyname avec C#


Message édité par Profil supprimé le 16-08-2017 à 23:33:18
Reply

Marsh Posté le 16-08-2017 à 23:34:07    

Reply

Marsh Posté le 17-08-2017 à 10:18:00    

Perso à partir d'une webrequest j'utilise un machin comme ça dans mes projets :

 
Code :
  1. string ipAddress;
  2.                 System.Web.HttpContext context = System.Web.HttpContext.Current;
  3.                 // 1 : try to use HTTP_X_CLUSTER_CLIENT_IP
  4.                 ipAddress = context.Request.ServerVariables["HTTP_X_CLUSTER_CLIENT_IP"];
  5.                 if (string.IsNullOrEmpty(ipAddress))
  6.                 {
  7.                     // 2 : try to use HTTP_X_FORWARDED_FOR
  8.                     ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
  9.                     if (!string.IsNullOrEmpty(ipAddress))
  10.                     {
  11.                         string[] addresses = ipAddress.Split(','); // HTTP_X_FORWARDED_FOR may return more than one ip
  12.                         if (addresses.Length != 0)
  13.                         {
  14.                             ipAddress = addresses[0];
  15.                         }
  16.                     }
  17.                 }
  18.                 if (string.IsNullOrEmpty(ipAddress))
  19.                 {
  20.                     // 3 : try to use REMOTE_ADDR
  21.                     ipAddress = context.Request.ServerVariables["REMOTE_ADDR"];
  22.                 }
  23.                 return ipAddress;
 

Ca tente en cascade quelques entêtes http susceptibles de te renseigner.
Fourni sans aucune garantie :o


Message édité par TotalRecall le 17-08-2017 à 10:18:25

---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 17-08-2017 à 13:41:47    

Merci, je vais essayer cela :)

Reply

Marsh Posté le 17-08-2017 à 13:49:15    

Au pire si c'est pour un site particulier dans un contexte spécifique chope chaque valeur, tu verras si t'en as une qui ressemble à une ip externe de client.
Mais si t'es derrière un troupeau de proxy/load balancer/firewall/trucs réseaux bizarres variés c'est pas impossible que l'info se fasse simplement bouffer avant d'arriver sur ton serveur web.

 


edit : je viens de relire ton premier post, je crois que je répond à côté : mon code ne sert pas à obtenir ta propre ip publique mais l'ip publique d'un client qui se connecte à ton site.
Obtenir ton ip publique ça n'a rien à voir. Et l'immense majorité des solutions que tu verras s'appuie sur un appel vers un site externe, c'est normal, c'est foutu comme ça.


Message édité par TotalRecall le 17-08-2017 à 13:52:14

---------------
Topic .Net - C# @ Prog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed