r - 如何在 R Plumber 中获取客户端 IP 地址

标签 r api-design plumber

我检查过 GitHub Repodoc但仍然无法弄清楚如何在 Plumber 中获取客户端 IP。

这是我尝试过的实现,我想将所有请求的 IP 地址添加到日志文件中,

#' @post /v1/rl
rl_v1 <- function(a, b, c){
  request='rl'
  start_time <- as.numeric(as.POSIXct(Sys.time()))
  log_record <- paste(NULL, Sys.time(), request, "requested", NULL, NULL, 
                  sep=",")
  cat(paste(log_record, "\n", sep=""), file=log_file_name, append=T)

  lhs <- data.frame(a=unlist(a),
                b=unlist(b),
                c=unlist(c))

  pairs <- custom_function(lhs, rhs, m_w = 0.98,
                                ext_blk_field=c(12), international=T,
                                fasterWcoBlock=T, preprocessedData2=T)
  input_records=nrow(lhs)
  matches=nrow(pairs)
  query_time <- as.numeric(as.POSIXct(Sys.time())) - start_time
  status <- data.frame(query_time=query_time, 
                   request=request, 
                   type='POST',
                   api_version=api_version_v1)

  log_record <- paste(NULL, Sys.time(), request, "responded", 
                  round(matches/input_records*100, 2), 
                  paste0(matches, '/', input_records, ' in ', query_time), 
                  sep=",")
  cat(paste(log_record, "\n", sep=""), file=log_file_name, append=T)

  return(list(data=pairs, status=status))
}

非常感谢任何帮助。

最佳答案

为了结束这个问题,我将重申评论:

Since plumber uses httpuv, it's possible you can reach the req$REMOTE_ADDR property of the request handle.

关于r - 如何在 R Plumber 中获取客户端 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43281656/

相关文章:

r - 从多个因子列生成虚拟矩阵

r - Excel中的Openxlsx超链接输出显示

java - 最小的 API 与便利

javascript - 通用与特定 API 响应

json - 让 R Plumber API 在 POST 上使用 JSON

r - 组合向量和 data.frame 匹配列值和向量值

Restful api 和搜索、邀请等操作

r - 通过管道工提供任意图像文件

可通过 Web 访问的 R API

r - 自定义 SHAPforxgboost 图中的标签