The columns named in entity_col and cidr_col must exist in the data frame or CSV file. All _names must be valid PostgreSQL syntax for said names. Setting drop=TRUE is destructive.

NOTE that cidr_col is a primary key. Thus duplicate CIDRs are not allowed and it's up to you to ensure that.

create_cidr_lookup_table(
  pgcon,
  tbl_name,
  drop = FALSE,
  xdf,
  entity_col = "entity",
  cidr_col = "cidr"
)

Arguments

pgcon

a PostgreSQL DBI connection

tbl_name

name of the CIDR table (valid PG table name syntax)

drop

drop existing CIDR table if it has the same name? Defaults to FALSE.

xdf

Data frame to use to populate the table or a path to a CSV file. If a path it will be path.expand()ed.

entity_col

Name of the column that holds the entity reference name for the CIDR

cidr_col

Name of the column that holds the CIDR block

Examples

if (FALSE) {
DBI::dbConnect(
  odbc::odbc(),
  driver = "/usr/local/lib/psqlodbca.so",
  Database = "working",
  Host = "localhost"
) -> con

create_cidr_lookup_table(
  pgcon = con,
  tbl_name = "amazon_cidrs",
  drop = TRUE,
  xdf = system.file("extdat", "amzn-cidrs.csv", package = "pgcidr"),
)

create_ip_source_table(
  pgcon = con,
  tbl_name = "weblog",
  drop = TRUE,
  xdf = system.file("extdat", "weblog.csv", package = "pgcidr")
)

find_ips_in_cidrs(
  con, "weblog", "amazon_cidrs"
)

}