Desenvolvimento - C#

Recuperando IP de um HOST remoto

Neste artigo veremos como recuperar o IP de um usuário que acessa um sistema WEB.

por Diego Gazotto Dezembro



1. Introdução

Por questões de segurança ou simplesmente de controle de acesso construímos sistemas WEB onde uma das informações armazenadas é o IP (Internet Protocol) do HOST remoto (usuário).

Neste artigo veremos como recuperar o IP de um usuário que acessa um sistema WEB.

2. IP

IP ou Internet Protocol é uma tecnologia que permite a comunicação padronizada entre computadores, mesmo que estes sejam de plataformas diferentes. Em resumo, IP é uma identificação única de um computador conectado a Internet.

3. ServerVariables

Para recuperar informações dos usuários que acessam um sistema WEB utilizaremos a coleção ServerVariables do objeto Request.

A coleção ServerVariables contém todas as informações geradas a partir de uma determinada requisição WEB combinada com variáveis do servidor.

Em particular, utilizaremos duas variáveis: HTTP_X_FORWARDED_FOR e REMOTE_ADDR. A primeira recupera o IP do HOST caso o mesmo esteja conectado à Internet utilizando um Proxy. A segunda recupera o IP do HOST remoto caso o mesmo não esteja conectado à Internet utilizando um Proxy.

4. Recuperando IP

Abaixo temos o exemplo de um método em C# que recupera o IP do HOST remoto:

public string IPUsuario()

{

    // Conexão utilizando proxy

    string strIPUsuario = System.Web.HttpContext.Current.Request.

        ServerVariables["HTTP_X_FORWARDED_FOR"];

    if (strIPUsuario == null)

    {

        // Conexão sem utilizar proxy

        strIPUsuario = System.Web.HttpContext.Current.Request.

            ServerVariables["REMOTE_ADDR"];

    }

    return strIPUsuario;

}

Obs: Caso você execute este método a nível local (localhost) o mesmo retornará o IP padrão do diretório virtual (127.0.0.1).

Abaixo temos a representação gráfica da interface do nosso exemplo quando executado a nível local:

Abaixo temos a representação gráfica da interface do nosso exemplo quando executado a nível de servidor:

4. Finalizando

Neste artigo abordamos como recuperar o IP de um HOST remoto para controle de acesso eu segurança.

Espero ter contribuído!

Até o próximo!

Diego Gazotto Dezembro

Diego Gazotto Dezembro

Diego Gazotto Dezembro - Trabalha com programação para web há dois anos. É graduando em Processamento de Dados pela FATEC – TQR. Atua como desenvolvedor na plataforma .NET na POLITEC – TQR (www.politec.com.br). Verdadeiro entusiasta em arquitetura de sistemas web.