将多个IP地址与R中的多个CIDR进行比较

将多个IP地址与R中的多个CIDR进行比较,r,ip,cidr,R,Ip,Cidr,我想确定我的IP地址与哪些CIDR匹配。我尝试过使用iptools,但矢量大小不同 Example: 192.168.100.10 CIDR match: 192.168.100.0/24 or 192.168.0.0/16 在出现更优化的方法之前,您完全可以使用带有一些弯头润滑脂的iptools来实现这一点: library(iptools) library(purrr) ips <- "192.168.100.10" cidrs <- c("192.168.100.0/24

我想确定我的IP地址与哪些CIDR匹配。我尝试过使用iptools,但矢量大小不同

Example: 192.168.100.10
CIDR match: 192.168.100.0/24 or 192.168.0.0/16

在出现更优化的方法之前,您完全可以使用带有一些弯头润滑脂的iptools来实现这一点:

library(iptools)
library(purrr)

ips <- "192.168.100.10"

cidrs <- c("192.168.100.0/24", "192.168.0.0/16")

map_df(ips, ~{
  map2_dfr(.x, cidrs, ~{
    ips_in_cidrs(.x, .y) %>% 
      mutate(cidr = .y)
  })
}) 
## # A tibble: 2 x 3
##   ips            in_cidr cidr            
##   <chr>          <lgl>   <chr>           
## 1 192.168.100.10 TRUE    192.168.100.0/24
## 2 192.168.100.10 TRUE    192.168.0.0/16 

将来,遵守在开始提问时和常见问题解答中提出的指导原则,即显示一些不起作用的代码,可以避免人们勾选“下一票”和“关闭”标志。我没有这样做,但大部分是b/c我是IPtool的合著者,我很感激!我发现您的iptools与CRAN版本不同,但是我无法在我的工作环境中正确安装。我找到了一个解决办法,你的软件包很好用,谢谢!