# Envie o IP do cliente para a origem em um header

Você pode enviar o endereço Internet Protocol (IP) do cliente para a sua origem em um header de requisição dedicado pelo Azion Console. Uma regra na fase de requisição do [Rules Engine para Applications](/pt-br/documentacao/plataforma/applications/rules-engine/) adiciona o header.

Quando um usuário envia uma requisição a uma [aplicação](/pt-br/documentacao/plataforma/applications/), o header `X-Forwarded-For` carrega o endereço IP do cliente. A infraestrutura distribuída da Azion intermedia as requisições à aplicação. Por isso, o mesmo header também carrega os outros endereços na rota da requisição. Para isolar o endereço IP do cliente, uma regra o encaminha em um header próprio.

---

## Pré-requisitos

- Uma aplicação que um [workload](/pt-br/documentacao/plataforma/workloads/) entrega, com uma regra que envia as requisições dela para uma origem. Para criar os dois, consulte [Primeiros passos com Applications](/pt-br/documentacao/plataforma/applications/primeiros-passos/).
- Acesso ao Azion Console. Para entrar, consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).

---

## Adicione o endereço IP do cliente a um header de requisição

A regra desta seção adiciona um header `X-Client-IP` à requisição que a Azion envia para a origem. O valor do header é a variável `${remote_addr}`, que contém o endereço IP do cliente que envia a requisição. A regra corresponde a todas as requisições, porque todo caminho começa com `/`.

Para criar a regra pelo Azion Console:

1. **Abra a aplicação**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação**.

2. **Selecione a aba Rules Engine**

3. **Selecione + Rule**

4. **Nomeie a regra**

   Na seção **General**, insira um **Name** para a regra, como `client-ip-header`.

5. **Selecione Request Phase**

   Na seção **Phase**, selecione **Request Phase**. A fase de uma regra não pode mudar depois que você cria a regra.

6. **Defina o critério**

   Na seção **Criteria**, selecione `${uri}` como variável e `starts_with` como operador.

7. **Insira o caminho**

   Insira `/` como argumento.

8. **Adicione o behavior de header**

   Na seção **Behaviors**, selecione **Add Request Header**.

9. **Insira o header**

   Insira `X-Client-IP:${remote_addr}` como argumento do behavior.

10. **Selecione Save**

A regra aparece na aba **Rules Engine**, em **Request**. Cada requisição que a Azion envia para a origem carrega o header `X-Client-IP`. O valor dele é o endereço IP do cliente que originou a requisição.

A sua aplicação pode já ter uma regra na fase de requisição que corresponde a todos os caminhos, como a regra que envia as requisições para uma origem. Essa regra pode carregar o header no lugar de uma regra nova. Uma regra contém até 10 behaviors.

Para adicionar o header a uma regra existente pelo Azion Console:

1. **Abra a aba Rules Engine**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação** e selecione a aba **Rules Engine**.

2. **Abra a regra**

   Selecione a regra que corresponde a todos os caminhos. O drawer **Edit Rule** abre.

3. **Selecione + Add Behavior**

4. **Adicione o behavior de header**

   Na nova linha de behavior, selecione **Add Request Header**.

5. **Insira o header**

   Insira `X-Client-IP:${remote_addr}` como argumento do behavior.

6. **Selecione Save**

A regra mantém os outros behaviors dela, e cada requisição que corresponde à regra chega à origem com o header `X-Client-IP`.

O nome do header aceita apenas letras, números, hífens e underscores. Para enviar o endereço com outro nome, substitua `X-Client-IP` no argumento. Para os caracteres que o valor de um header aceita, consulte [Add Request Header](/pt-br/documentacao/plataforma/applications/rules-engine/#add-request-header).

---

## Próximos passos

- [Rules Engine para Applications](/pt-br/documentacao/plataforma/applications/rules-engine.md#variaveis): Cada variável que uma regra pode ler, como a porta do cliente, o método da requisição e a geolocalização do cliente.
- [Crie regras de request e response](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/rules-engine.md): Crie regras para a fase de requisição e a fase de resposta de uma aplicação.
- [Connectors](/pt-br/documentacao/plataforma/connectors.md): Como uma aplicação chega à origem que recebe o header.
- [Depure regras criadas com Rules Engine](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/debug-regras.md): Descubra se uma regra foi executada em uma requisição, pela GraphQL API, pelo Data Stream ou pelo Real-Time Events.
