Usuário com melhor resposta
GET IP asp.net

Pergunta
-
pessoal, estou tentando pegar o IP local que esta rodando o sistema web com a chamada da propriedade "Request.UserHostAddress" que esta me retornando "::1", porém precisava do IP da máquina, pois irei criar algumas verificações com base nele.
Qual seria a alternativa para eu conseguir o IP de quem esta acessando o sistema, mesmo que esteja acessando da máquina local?
Respostas
-
sim, essa foi mais ou menos o que implementei, mas achei que tivesse alguma alternativa própria de c#
private string GetIp() { string ip = Request.UserHostAddress; if (ip.Equals("::1")) ip = GetLocalIP(); return ip; } public string GetLocalIP() { IPHostEntry _IPHostEntry = Dns.GetHostEntry(System.Net.Dns.GetHostName()); IPAddress ip = _IPHostEntry.AddressList.SingleOrDefault(a => a.AddressFamily == AddressFamily.InterNetwork); return ip.ToString(); }
- Marcado como Resposta Pablotdv quarta-feira, 7 de novembro de 2012 14:46
Todas as Respostas
-
Pablo, Boa tarde
Se você estiver fazendo esse teste da sua maquina, isso pode acontecer, pois ele esta pegando o IP do Localhost, tente publicar sua pagina em um servidor e testar
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br- Editado Bruno VD Ribeiro terça-feira, 6 de novembro de 2012 19:35
-
-
Pablo,
Sinceramente não sei se é possível, mas porque você não usa o valor que ele mostra como se fosse o IP Local? é apenas para teste não é?
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br -
-
Entendi, o que eu quis dizer foi você fazer mais ou menos assim na hora de pegar o ip se for igual a ";;1" você troca por 127.0.0.1
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br -
sim, essa foi mais ou menos o que implementei, mas achei que tivesse alguma alternativa própria de c#
private string GetIp() { string ip = Request.UserHostAddress; if (ip.Equals("::1")) ip = GetLocalIP(); return ip; } public string GetLocalIP() { IPHostEntry _IPHostEntry = Dns.GetHostEntry(System.Net.Dns.GetHostName()); IPAddress ip = _IPHostEntry.AddressList.SingleOrDefault(a => a.AddressFamily == AddressFamily.InterNetwork); return ip.ToString(); }
- Marcado como Resposta Pablotdv quarta-feira, 7 de novembro de 2012 14:46
-
Pelo que pesquisei na net essa seria a melhor saida...
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br