none
Problemas para pegar IP. RRS feed

  • Pergunta

  • Pessoal.
    Preciso pegar o IP do cliente que acessa o sistema.

    Estouy tentando das seguintes formas:

            HttpRequest currentRequest = HttpContext.Current.Request;
            lblIp.Text = currentRequest.UserHostAddress.ToString();
            lblHost.Text = Request.UserHostAddress.ToString();
            lblLocalAddr.Text = Request.ServerVariables["LOCAL_ADDR"];
    
            string ipAddress = currentRequest.ServerVariables["HTTP_X_FORWARDED_FOR"];
    
            if (ipAddress == null || ipAddress.ToLower() == "unknown")
                ipAddress = currentRequest.ServerVariables["REMOTE_ADDR"];

    Acontece que de todas as formas, está retornando o ip do Gateway ("172.16.xxx.xxx") me parece.
    Eu precisava pegar o IP real, algo como 200.xxx.xxx.xxx.

    Como resolver este request?

    Grato antecipadamente.




    Notepad na mão e uma idéia na cabeça......Se foi útil, marca lá.... Me ajuda que eu marco também... heheheh

    segunda-feira, 17 de dezembro de 2012 13:33

Respostas

  • Tenta assim

    HttpWebRequest SendReq = HttpWebRequest.Create(Provider);
    	HttpWebResponse GetRes = SendReq.GetResponse();
     
    	System.IO.Stream StreamRes = GetRes.GetResponseStream;
    	StreamReader ResStrmRdr = new StreamReader(ResStream, Encoding.UTF8);
     
    	string IP = ResStrmRdr.ReadToEnd;
     
    	StreamRes.Close();
    	GetRes.Close();
     
    	return IP;
    
    ou
    
    public string  GetIP()
        {
            string Str = "";
            Str = System.Net.Dns.GetHostName();
            IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(Str);
            IPAddress[] addr = ipEntry.AddressList;
            return addr[addr.Length - 1].ToString();
     
        }
    também pode ser assim http://bytes.com/topic/asp-classic/answers/439176-how-get-clients-ip-address-asp-net


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    terça-feira, 18 de dezembro de 2012 18:00
    Moderador

Todas as Respostas

  • http://stackoverflow.com/questions/735350/how-to-get-a-users-client-ip-address-in-asp-net

    A flower cannot blossom without sunshine, and man cannot live without love.

    segunda-feira, 17 de dezembro de 2012 22:10
    Moderador
  • Tenta assim

    HttpWebRequest SendReq = HttpWebRequest.Create(Provider);
    	HttpWebResponse GetRes = SendReq.GetResponse();
     
    	System.IO.Stream StreamRes = GetRes.GetResponseStream;
    	StreamReader ResStrmRdr = new StreamReader(ResStream, Encoding.UTF8);
     
    	string IP = ResStrmRdr.ReadToEnd;
     
    	StreamRes.Close();
    	GetRes.Close();
     
    	return IP;
    
    ou
    
    public string  GetIP()
        {
            string Str = "";
            Str = System.Net.Dns.GetHostName();
            IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(Str);
            IPAddress[] addr = ipEntry.AddressList;
            return addr[addr.Length - 1].ToString();
     
        }
    também pode ser assim http://bytes.com/topic/asp-classic/answers/439176-how-get-clients-ip-address-asp-net


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    terça-feira, 18 de dezembro de 2012 18:00
    Moderador