2010-09-10 2 views
0

Я пытаюсь принести IP-адрес с помощью этого: -ASP.NET вопрос о получении IP-адрес пользователя

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

Этот код выводит 127.0.0.1.

И нижеприведенный код не отображает ничего!

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

Как получить IP-адрес? РЕАЛЬНЫЙ IP-адрес пользователя?

[EDIT]

Я не хочу ТОЧНО расположение BTW. Мне нужно знать страну, а затем перенаправить пользователя на веб-страницу соответственно.

+2

Имейте в виду, что NAT, прокси и так далее будут затенять результаты. –

+0

yep Я знаю .. просто нужно знать страну – Serenity

+2

У меня был прокси-сервер в хостинговом центре, который помешал получить IP-адрес пользователя, поэтому вы даже не получите данные по стране. –

ответ

3
Request.Params["REMOTE_ADDR"] 
+0

это тоже отображает 127.0.0.1 в качестве вывода – Serenity

+4

@happysoul, возможно, потому, что вы тестируете на localhost? – driis

2

Используя system.net, попробуйте это -

// 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()); 
      }