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

时间:2013-06-14 22:15:04

标签: r ip-address ipv4 rook shiny-server

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

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

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

编辑:我也接受使用与Rook不同的答案(但仍在R

编辑2: 我已经按照link设置了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写入我的主文件夹。然而,没有任何事情发生,日志仍为空白。根据{{​​3}},在格式部分中,我应该收到以下日志之一:

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 个答案:

答案 0 :(得分:3)

似乎Rook只在rApache支持时提供远程添加。

另一种选择是从优秀人员@ RStudio然后shiny-server设置configure the access log,这样您就可以使用您选择的所选access log format来解析它。< / p>

我倾向于Shiny解决方案,因为rApache的作者也帮助Shiny and Shiny(因为它是RStudio的官方产品)似乎准备好增长和长期可用性我们can't really say about rApache(如很好,因为它!)。