2011-10-06 13 views
9
  1. Benim Dev Makinemde HttpContext.Current.Request.UserHostAddress boş. Neden? nasıl açabilirim?
  2. Bir proxy istemcisi durumunda IPS'nin listesini nasıl alabilirim?

WWW Hizmeti ile ASP.net 4 window7.HttpContext.Current.Request.UserHostAddress boş

Teşekkür

+0

boş bir/null adlı asla yardımcı olur, ancak Cassini herhangi bir nedenle artık bir ":: 1" döndürür. –

+0

@DoozerBlake :: 1 IPv6'nın 127.0.0.1 sürümüdür. Kaynak: http://stackoverflow.com/a/4611421/84395 –

cevap

6

son konağa giriş IP için HTTP_X_FORWARDED_FOR ayrıştırmak Bu sorunu önlemek için.

ip=Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ; 
if (!string.IsNullOrEmpty(ip)) 
{ 
    string[] ipRange = ip.Split(','); 
    int le = ipRange.Length - 1; 
    string trueIP = ipRange[le]; 
} 
else 
{ 
    ip=Request.ServerVariables["REMOTE_ADDR"]; 
} 

Umut bu irade size

+3

Viral Sarvaiya'nın cevabı hakkında sadece bir not. [Wikipedia] (http://en.wikipedia.org/wiki/X-Forwarded-For) ve [Amazon] 'a göre (http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html) X-Yönlendirilen-For üstbilgisi aşağıdaki biçime sahiptir:> X-Yönlendirilmiş-For: istemci, proxy1, proxy2 Bu, ilk ipucunu "ipRange", sonuncu değil de kullanmanız gerektiği anlamına gelir. – dubrowgn