将多个 IP 地址与 R 中的多个 CIDRS 进行比较
Compare Multiple IP Addresses to Multiple CIDRS in R
我想确定我的 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
我想确定我的 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