Получение приватного IP-адреса пользователя Rook/Shiny Page

Я создал веб-приложение, используя Rook который слушает мой сетевой ip (192.168.xx.xx) на порту 8000. Каждый в моем офисе может подключиться к ним, просто набрав http://192.168.xx.xx:8000/page_name в браузере. Мне нужно следить за использованием этих страниц и удивляться, как я могу получить сетевой IP-адрес тех, кто к ним подключен.

У меня нет опыта в веб-разработке, и из проведенных исследований кажется, что использование клиентского кода, такого как JavaScript это очень трудно (почти невозможно) достичь этого (поправьте меня, если я ошибаюсь). Итак, мой вопрос: есть ли способ получить IP-адрес сетевого клиента с помощью серверного кода внутри приложения Rook? (При необходимости я бы хотел изменить веб-сервер, любое решение приветствуется).

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

РЕДАКТИРОВАТЬ: Я также принял бы ответы, используя что-то другое, чем Rook (но все еще в R)

РЕДАКТИРОВАТЬ 2: Я установил Shiny Server по этой ссылке. Я на этапе настройки Сервера, чтобы получить access_log что, согласно @Thell, содержит информацию, которая мне нужна. В shiny-server.conf Я добавил относительное утверждение и теперь:

run_as shiny;

server {
  listen 3838;

  location / {
    site_dir /var/shiny-server/www;
    log_dir /var/shiny-server/log;
    directory_index on;
  }

}

access_log /home/michelec/log.txt;

последняя строка должна сказать блестяще записать access_log в мою домашнюю папку. Однако ничего не происходит, журнал остается пустым. в соответствии с здесь, в разделе Форматы, я должен получить один из этих журналов:

default ':remote-addr - - [:date] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"'
short ':remote-addr - :method :url HTTP/:http-version :status :res[content-length] - :response-time ms'
tiny ':method :url :status :res[content-length] - :response-time ms'
dev concise output colored by response status for development use

в зависимости от того, если вы оставите формат по умолчанию или измените его.

1 ответ

Решение

Кажется, что Rook будет обеспечивать удаленное добавление только при поддержке rApache.

Другим вариантом будет настройка сервера поставки из "обычных людей" @ RStudio, а затем настроить журнал доступа таким образом, чтобы вы могли анализировать его, используя выбранный вами формат журнала доступа.

Я бы склонялся к решению Shiny, так как автор rApache также помог с Shiny и Shiny (поскольку он является официальным продуктом RStudio), похоже, готов к росту и долгосрочной доступности, чего нельзя сказать о rApache (как хорошо как есть!).

Другие вопросы по тегам