Похожие вопросы

Открыть порты на iPhone?
Как настроить GoDaddy и/или DNS для работы с домашний сервер Ubuntu виртуальные хосты
Проклятый маленький Linux с XAMPP Linux для создания веб-сервера на машине P4 или Mele A2000
Настройка Apache2 для автоматического перенаправления вызовов на порт 80 на порт 443
Минимальный Apache модули, необходимые для статического сайта и не authN
не удалось открыть поток слишком много открытых файлов-php 1024 максимальный лимит-Redhat-почему не работает новый лимит?
Настройка Apache для внешнего доступа
Не удается запустить файлы php на сервере apache с помощью IDE NetBeans
Проверьте, работает ли virtualhost с помощью терминала
Черный список IP-адресов после определенных путей, запрошенных с Apache2
Подключение к localhost со смартфоном: возможно?
Апач по HTTP редирект HTTPS с переписать
PHP файлы загружаются вместо интерпретации
Apache httpd простой метод для возврата удаленного адреса
Что такое Apache Synapse?

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

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

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

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

5
задан Chris Mendez
источник

1 ответов

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

пример:

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

  SetEnvIf Remote_Host "(.*)" var1=
  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
2
отвечен mtak 2014-06-10 14:28:48
источник

Другие вопросы apache-http-server httpd linux networking