Prosta metoda httpd Apache do zwracania adresu zdalnego

2

Mam wiele zdalnych systemów, które muszą określić swoje publiczne adresy IP, i chciałbym użyć serwera internetowego z uruchomionym httpd 2.2, aby zwrócić im zdalne adresy.

Chociaż byłoby to trywialne, gdyby serwer httpd działał w PHP lub podobnym, chciałbym uniknąć potrzeby dodatkowego przetwarzania po stronie serwera, jeśli httpd i jego moduły mogą być skonfigurowane w celu uzyskania tych informacji.

Czy jest jakiś sposób, aby skonfigurować httpd, aby zwrócić zdalny adres? Może masz specjalny adres URL, który w jakiś sposób zostanie przepisany? Jeśli ma to znaczenie, zdalne systemy działają pod Linuksem i prawdopodobnie używają wget, który mógłby wydrukować informacje z nagłówków.

Chris Mendez
źródło
Nie jest to możliwe za pomocą Javascript, więc możesz stworzyć swój własny program obsługi lub zaimplementować język wyższego poziomu, zarówno klienta, jak i serwera. niektóre opcje dla szerokiej gamy platform tutaj: javascript.about.com/library/blip.htm
Frank Thomas

Odpowiedzi:

2

Interesujące pytanie. Nie sądzę, aby Apache mógł zrobić cokolwiek z treścią dokumentu bez używania języka skryptowego po stronie serwera, ale powinieneś być w stanie zmodyfikować nagłówki HTTP, aby zawierały potrzebne dane.

Przykład:

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

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

Spowoduje to umieszczenie dodatkowego nagłówka w nagłówkach odpowiedzi HTTP. Jeśli otrzymasz nagłówki tego żądania za pomocą curl -I get-remote-host.int.mtak.nl otrzymasz adres IP klienta:

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
mtak
źródło
Doskonała odpowiedź, działała dokładnie zgodnie z oczekiwaniami. Dzięki!
Chris Mendez