Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Rook/Shining page用户的私有ip地址_R_Ip Address_Ipv4_R Rook Package_Shiny Server - Fatal编程技术网

获取Rook/Shining page用户的私有ip地址

获取Rook/Shining page用户的私有ip地址,r,ip-address,ipv4,r-rook-package,shiny-server,R,Ip Address,Ipv4,R Rook Package,Shiny Server,我使用Rook创建了一些web应用程序,它在端口8000监听我的网络ip(192.168.xx.xx)。我办公室里的每个人只要输入http://192.168.xx.xx:8000/page_name在浏览器中。我需要监控这些页面的使用情况,并想知道如何获取连接到这些页面的用户的网络ip地址 我在web开发方面没有经验,从目前为止所做的研究来看,使用像JavaScript这样的客户端代码很难(几乎不可能)实现这一点(如果我错了,请纠正我)。所以,我的问题是:有没有办法在Rook应用程序中使用服务

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

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

如果我的问题让人困惑,请提前表示感谢和歉意。。。特别是我不确定是否需要其他标签

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

编辑2: 我已经在下面设置了闪亮服务器。我正在配置服务器,以获取
access\u log
,根据@Thell,该日志包含我需要的信息。在
shinny 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;
最后一行应该告诉shiny将访问日志写入我的主文件夹。但是,什么也没有发生,日志仍然为空。根据,在“格式”部分,我将收到以下日志之一:

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

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

Rook似乎只会在rApache的支持下提供远程添加

另一个选项是从fine-peops@RStudio进行设置,然后您可以使用所选的


我倾向于使用闪亮的解决方案,因为rApache的作者也帮助开发了闪亮的解决方案(因为它是RStudio的官方产品),似乎准备好了增长和长期可用性,我们(尽管它很好!)。

您能提供您的代码吗?除了基本文档,Rook上没有太多内容,因此回答您的问题可能需要一些实验,这可能需要一个可复制的示例。@Schaunb感谢您的回答。抱歉,我还没有此任务的代码。我每天都在做研究。事实上,即使只有一个(有效的)输入来开始编码,这个问题也会得到回答。我今天玩了一个游戏-看起来
ip()
应该是你想要的,但我无法从itIn Rook获得任何输出-从帮助(p12)“ip():以字符串形式返回远程ip地址。”和(p13):
res$write(c('ip:',req$ip(),'\n'))
。但我重复一遍-这对我不起作用,否则我会将其作为答案发布。它只提供空输出。使用部署Rook应用程序,您将获得标准格式(带ip和时间戳)的漂亮
access.log
。感谢您这周的耐心!顺便说一句,在设置shiny的时候,我看到它是构建在
Node.js
上的,它允许通过
connect
模块非常轻松地获取ip。这个模块是
访问日志
背后的东西,但不幸的是,在shiny中,与Node不同,您无法使用它将检索到的ip访问到服务器端代码中[他们正在进行这项工作我很乐意。很有趣……我打赌这可以很容易地插入api;我猜这些类型的完全控制功能将需要在企业版中使用,所以请耐心等待;或者更好的是,破解这个闪亮的源代码!)