获取Rook/Shiny页面用户的私有IP地址

Mic*_*ele 11 r ip-address ipv4 r-rook-package shiny-server

我已经创建了一些网络应用程序,使用Rook它可以在端口8000监听我的网络IP(192.168.xx.xx).我办公室内的每个人都可以http://192.168.xx.xx:8000/page_name在浏览器中输入它们.我需要监控这些页面的使用情况,并想知道如何获取连接到它们的网络IP地址.

我在网络开发方面没有经验,而且从迄今为止所做的研究来看,使用客户端代码似乎JavaScript很难(几乎不可能)实现这一点,(如果我错了,请纠正我).所以,我的问题是:有没有办法在Rook应用程序中使用服务器端代码获取网络客户端ip?(如果需要,我愿意更改网络服务器,任何解决方案都赞赏).

如果我的问题看起来令人困惑,请提前致谢和抱歉...特别是我不确定是否需要其他标签.

编辑:我也会接受使用不同于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;
Run Code Online (Sandbox Code Playgroud)

最后一行应该告诉有光泽将access_log写入我的主文件夹.然而,没有任何事情发生,日志仍为空白.根据这里,在Formats部分,我应该收到以下日志之一:

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
Run Code Online (Sandbox Code Playgroud)

取决于您是保留默认格式还是更改格式.

The*_*ell 3

看起来 Rook 只有在 rApache 支持的情况下才会提供远程添加。

另一种选择是从好人@ RStudio设置闪亮服务器,然后配置访问日志,以便您能够使用您选择的访问日志格式来解析该日志。

我倾向于 Shiny 解决方案,因为 rApache 的作者也在 Shiny 上提供了帮助,而 Shiny (因为它是 RStudio 的官方产品)似乎已经做好了增长和长期可用性的准备,我们不能真正谈论 rApache(也很好)就这样!)。