Apache httpd método simples para retornar o endereço remoto

2

Tenho vários sistemas remotos que precisam determinar seus IPs públicos e gostaria de usar um servidor voltado para a Internet executando o httpd 2.2 para retornar seus endereços remotos para eles.

Embora isso seja trivial se o servidor httpd estivesse executando PHP ou similar, eu gostaria de evitar a necessidade de processamento extra no lado do servidor se o httpd e seus módulos puderem ser configurados para obter essa informação.

Existe alguma maneira de configurar o httpd para retornar o endereço remoto? Talvez tenha um URL especial que seja reescrito de alguma forma? Se for importante, os sistemas remotos estão executando o linux e provavelmente usariam o wget, que poderia imprimir as informações dos cabeçalhos.

    
por Chris Mendez 10.06.2014 / 16:11

1 resposta

2

Pergunta interessante. Eu não acho que o Apache possa fazer qualquer coisa com o conteúdo do documento sem usar uma linguagem de script do lado do servidor, mas você deve ser capaz de modificar os cabeçalhos HTTP para conter os dados que você precisa.

Um exemplo:

<VirtualHost *:80>
  ServerName get-remote-host.int.mtak.nl

  SetEnvIf Remote_Host "(.*)" var1=$1
  Header set X-RemoteHost %{var1}e
</VirtualHost>

Isso colocará um cabeçalho extra nos cabeçalhos HTTP de resposta. Se você obtiver os cabeçalhos dessa solicitação com curl -I get-remote-host.int.mtak.nl , receberá o IP do cliente:

mtak@frisbee:~$ curl -I get-remote-host.int.mtak.nl
HTTP/1.1 200 OK
[...]
X-RemoteHost: 10.100.1.2
Content-Type: text/html
    
por 10.06.2014 / 16:28