在Shiny中获取用户IP

时间:2017-05-10 09:09:38

标签: r shiny shiny-server

有没有办法获取访问闪亮应用程序的人的IP?希望有一个R / Shiny解决方案,但我也可以接受一个javascript解决方案。我想反向对IP进行地理编码,以生成可视化大多数用户访问应用程序的国家/地区的图表,然后将该信息放入应用程序供所有用户查看。我只需要一种方法来获取用户的IP,其他的东西很容易解决。

1 个答案:

答案 0 :(得分:2)

你可以试试这个。 在文件夹www中,输入此文件,例如getIP.js

$(document).ready(function(){
  $.get("http://ipinfo.io", function(response) {
    Shiny.onInputChange("getIP", response);
  }, "json");
});

ui.R

shinyUI(fluidPage(
  tags$head(
    tags$script(src="getIP.js")
  ),
  .......

server.R中(观察者只是为了测试):

  IP <- reactive({ input$getIP })

  observe({
    cat(capture.output(str(IP()), split=TRUE))
  })

然后你得到IP()的输出列表(我隐​​藏我的IP):

List of 8
 $ ip      : chr "xx MY IP IS HERE xx"
 $ hostname: chr "No Hostname"
 $ city    : chr "Liège"
 $ region  : chr "Wallonia"
 $ country : chr "BE"
 $ loc     : chr "50.6412,5.5718"
 $ org     : chr "AS12392 Brutele SC"
 $ postal  : chr "4020"

这不完美,有时结果是NULL

相关问题