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

Какова ошибка, о которой сообщают для AH01757, " генерируя секрет для дайджест-аутентификации ..."?
Не удается изменить файл на www-data, продолжайте получать " chown: www-data: недопустимый аргумент"
добавлена запись в hosts файл (ubuntu); can ping ok; can nslookup
Как настроить Jenkins для работы на порту 80
Почему Apache не запускается в MAMP?
Отказано в разрешении, так как отсутствуют разрешения поиска для компонента пути после chmod и chgrp
http://localhost/phpmyadmin/index.php "говорит, что сайт не может быть достигнут". Apache не удается запустить
Apache не удается записать в файлы и папки на Fedora 16
Развертывание Джанго в nginx
Как создать псевдоним в Apache 2, который указывает на сетевой ресурс?
Аутентификация Owncloud WebDAV возможна через веб-интерфейс, но не через настольный клиент
Установка мода php для Apache после установки Remi repo версии PHP 5.6
потоковое flv с помощью ffserver
Не удается получить доступ к localhost через прокси-сервер Squid
XAMPP не запускает Apache на Mac OS X 10.6.8 Snow Leopard

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