2017-05-10 4 views
1

반짝 이는 응용 프로그램에 액세스하는 사람의 IP를 얻을 수있는 방법이 있습니까? 바라건대 R/Shiny 솔루션이 있지만 자바 스크립트 솔루션도 받아 들일 수 있습니다. 나는 지오 코드 IP를 역전시켜 대부분의 사용자가 앱에 액세스하는 국가를 시각화하는 그래프를 작성한 다음 모든 사용자가 볼 수 있도록 앱에 정보를 입력합니다. 나는 사용자 IP를 얻는 방법 만 필요하고 다른 것들은 쉽게 해결할 수 있습니다.Shiny에서 사용자 IP를 얻으십시오

+2

여기를 보시려면 https://shiny.rstudio.com/articles/usage-metrics.html 및 https://shiny.rstudio.com/articles/google-analytics.html을 참조하십시오. – Jav

답변

1

시도해 볼 수 있습니다. 폴더 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입니다.