Apache: Подать для cgi переменную среду из http-заголовка
Прошу помощи в следующем:
Есть расшифровщик траффика, который передает траффик в Apache. Они на одном серваке.
Соответственно REMOTE_ADDR Apache видит как 127.0.0.1.
Однако реальный IP присутствует как специальный Http-заголовок Remote-Addr.
И у меня даже получается его логировать в Apache:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Remote-Addr}i\"" common
Apache запускает специальный cgi-гейт exe-файл для формирования специального запроса к специальной Системе. Исходников гейта у нас нет. Система частично на открытых скриптах.
Среди "заголовков", отправляемых в Систему, присутствует REMOTE_ADDR, равный 127.0.0.1. И система логирует его, а крайне хочется видеть IP посетителя.
другие заголовки и переменные среды гейт игнорирует.
внимание вопрос - можно ли пробросить в Систему реальный IP именно через REMOTE_ADDR ?
есть еще и менее красивый но вполне себе план:
строкой SetEnvIf Host (.*) REMOTE_ADDD=$1 я добиваюсь публикации переменной окружения REMOTE_ADDD при запуске гейта.
Теперь, изменив в exe-файле наименование REMOTE_ADDR на REMOTE_ADDD я добился проброса Host в Систему и там я это ловлю.
Но как мне опубликовать переменную REMOTE_ADDD, выдергивая инфу для нее из http-заголовка?
...заголовки запроса к скрипту будут помещены в переменные окружения со следующими названиями: названия начинаются с символов "HTTP_", за которыми следует название заголовка в верхнем регистре, в котором символы "-" заменены на "_"...
далее я развинтил exe-файл и заменил один из ненужных мне заголовков на строку
REAL_ADDR=HTTP_REMOTE_ADDR
в Системе, соответственно, ловлю REAL_ADDR.