2010-09-10 4 views
0

Je suis en train de chercher l'adresse IP en utilisant ceci: -question ASP.NET concernant obtenir l'adresse IP d'un utilisateur

protected void Page_Load(object sender, EventArgs e) 
    { 
     string ClientIP; 
     ClientIP = HttpContext.Current.Request.UserHostAddress; 
     Label1.Text = ClientIP; 
    } 

Ce code génère 127.0.0.1.

Et le code ci-dessous n'affiche rien!

string ClientIP; 
    ClientIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 
    Label1.Text = ClientIP; 

Comment puis-je récupérer l'adresse IP? L'adresse IP REAL d'un utilisateur?

[EDIT]

Je ne veux pas EXACT BTW emplacement. J'ai besoin de connaître le pays, puis rediriger l'utilisateur vers une page Web en conséquence.

+2

Gardez à l'esprit que NAT, procurations et ainsi de suite masqueront les résultats. –

+0

oui je sais .. juste besoin de connaître le pays – Serenity

+2

J'ai eu un proxy dans le centre d'hébergement qui a empêché d'obtenir l'adresse IP de l'utilisateur, alors vous ne recevrez même pas les données du pays. –

Répondre

3
Request.Params["REMOTE_ADDR"] 
+0

cela affiche également 127.0.0.1 comme sortie – Serenity

+4

@happysoul peut-être parce que vous testez sur localhost? – driis

2

En utilisant System.Net, essayez ceci -

// Then using host name, get the IP address list.. 
      IPHostEntry ipEntry = DNS.GetHostByName (strHostName); 
      IPAddress [] addr = ipEntry.AddressList; 

      for (int i = 0; i < addr.Length; i++) 
      { 
       Console.WriteLine ("IP Address {0}: {1} ", i, addr[i].ToString()); 
      }