Apache httpd простой метод для возврата удаленного адреса


2

У меня есть несколько удаленных систем, которым необходимо определить свои общедоступные IP-адреса, и я хотел бы использовать выходящий в Интернет сервер с httpd 2.2, чтобы возвращать им удаленные адреса.

Хотя это было бы тривиально, если бы на httpd-сервере работал PHP или аналогичный, я бы хотел избежать дополнительной обработки на стороне сервера, если httpd и его модули можно настроить для получения этой информации.

Есть ли способ настроить httpd для возврата удаленного адреса? Может быть, есть специальный URL, который как-то переписывается? Если это имеет значение, удаленные системы работают под управлением Linux и, вероятно, будут использовать wget, который может печатать информацию из заголовков.


Это невозможно сделать с помощью Javascript, поэтому вы можете создать свой собственный обработчик или реализовать язык более высокого уровня, как клиентский, так и серверный. некоторые варианты для самых разных платформ здесь: javascript.about.com/library/blip.htm
Фрэнк Томас,

Ответы:


2

Интересный вопрос. Я не думаю, что Apache может что-либо сделать с содержимым документа без использования языка сценариев на стороне сервера, но вы должны иметь возможность изменять заголовки HTTP, чтобы они содержали нужные вам данные.

Пример:

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

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

Это добавит дополнительный заголовок в заголовки HTTP ответа. Если вы получите заголовки этого запроса, curl -I get-remote-host.int.mtak.nlвы получите IP клиента:

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

Отличный ответ, это сработало именно так, как и ожидалось. Спасибо!
Крис Мендес
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.