Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

Для реализации этой задачи необходимо включить модули "mod_headers.so" и "mod_ssl.so", в конфигурационном файле apache: "httpd.conf". Расположен в папке apache/conf.

Нужно найти строки:

#LoadModule headers_module modules/mod_headers.so

#LoadModule ssl_module modules/mod_ssl.so

И раскомментировать их путем удаления символа "#"

И

Далее в самый конец этого файла надо добавить строчку:

RequestHeader append caller_ip_adress "%{REMOTE_ADDR}s"

Сохранить файл и перезапустить службу Apache из списка служб

или из командной строки

Готово. Теперь при любом вызове сервиса, apache будет добавлять заголовок с ip адресом:

17 Comments

  1. YPermitin

    (0) по-больше бы таких статей.

    Спасибо! + доставлен 🙂

    Reply ↓
  2. SirAlexIT

    (1) Поддерживаю! Для практических задач полезная информация. +

    Reply ↓
  3. Sibars

    Спасибо за лестную оценку моей статьи. Напишите в комментариях кейсы использования ip адреса в 1с)

    Я использую для определения «злоупотребления» публичным api и установкой лимитов количества вызовов за определенный период

    Reply ↓
  4. frkbvfnjh

    Спасибо, то что мне надо! Тоже была такая задача, но никто не смог помочь 🙁 Нужно было для логирования, что бы знать с какого устройства приходил запрос.

    Reply ↓
  5. altu71

    Супер. А кто-нибудь может для IIS подсказать как настроить, если это возможно?

    Reply ↓
  6. nvv1970

    (3) а если впереди nginx?

    Reply ↓
  7. Sibars

    (6) Нет развернутого, точно не скажу, но можно использовать проброс:

    Прокирование IP в Nginx

    Reply ↓
  8. asved.ru

    (6) аналогично на nginx

    Reply ↓
  9. nvv1970

    (7) я просто привел пример, что апач может быть за прокси. Тогда никакого ip вы не получите, кроме ip самого прокси))

    Reply ↓
  10. Sibars

    (9)

    тогда надо такой заголовок сформировать на стороне nginx и прокинуть его до apache 🙂

    Reply ↓
  11. -vito-

    (5) Описал здесь

    Reply ↓
  12. -vito-

    (9) (10)

    Постарался ответить на этот вопрос здесь

    Reply ↓
  13. nvv1970

    (12) Отлично! Буковки и красивые картинки…. Реклама засчитана! )))

    Содержание уже интересно. Обязательно ознакомлюсь ))

    Reply ↓
  14. altu71

    (11) Спасибо огромное! Прямо то, что нужно!

    Reply ↓
  15. vsesam80

    А для веб сервиса на Апаче такое возможно сделать?

    Reply ↓
  16. Sibars

    (15)

    К сожалению, нельзя.

    Apache не имеет доступа к «телу» сообщения, а 1С, при работе, с протоколом SOAP не принимает «лишние» заголовки.

    Reply ↓
  17. vsesam80

    (16)Это печально. У нас все конфы старые, там HTTP низя запилить. А вот ip адрес входящего подключения было бы интересно посмотреть

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *