2

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

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

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

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .