2011-10-06 13 views
9
  1. W mojej maszynie Dev HttpContext.Current.Request.UserHostAddress ma wartość null. Dlaczego? jak mogę go włączyć?
  2. Jak mogę uzyskać listę Ips w przypadku klienta proxy?

Usługa WCF z witryną ASP.net 47.HttpContext.Current.Request.UserHostAddress ma wartość null

Dzięki

+0

ja nigdy się pusty/null, ale zwraca Cassini „:: 1” teraz z jakiegoś powodu. –

+0

@DoozerBlake the :: 1 to wersja 127.0.0.1 w IPv6. Źródło: http://stackoverflow.com/a/4611421/84395 –

Odpowiedz

6

aby uniknąć tego problemu można analizować HTTP_X_FORWARDED_FOR za ostatni entery OD.

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"]; 
} 

nadzieję, że to pomaga

+3

Po prostu notka o odpowiedzi 'Viral Sarvaiya'. Według [Wikipedia] (http://en.wikipedia.org/wiki/X-Forwarded-For) i [Amazon] (http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html) nagłówek X-Forwarded-For ma następujący format:> X-Forwarded-For: klient, proxy1, proxy2 Oznacza to, że powinieneś używać pierwszego ciągu w 'ipRange', a nie ostatniego. – dubrowgn

Powiązane problemy