boB Rudis
6 years ago
10 changed files with 87 additions and 34 deletions
@ -0,0 +1,4 @@ |
|||||
|
set_names <- function (object = nm, nm) { |
||||
|
names(object) <- nm |
||||
|
object |
||||
|
} |
@ -0,0 +1,38 @@ |
|||||
|
#' Vectorized query, returning only answers in a data frame |
||||
|
#' |
||||
|
#' @param entities character vector of entities to query |
||||
|
#' @param type RR type can be represented as a number in [1, 65535] or canonical |
||||
|
#' string (A, aaaa, etc). More information on RR types can be |
||||
|
#' found \href{http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4}{here}. |
||||
|
#' @param edns_client_subnet The edns0-client-subnet option. Format is an IP |
||||
|
#' address with a subnet mask. Examples: \code{1.2.3.4/24}, |
||||
|
#' \code{2001:700:300::/48}.\cr |
||||
|
#' If you are using DNS-over-HTTPS because of privacy concerns, and do |
||||
|
#' not want any part of your IP address to be sent to authoritative |
||||
|
#' nameservers for geographic location accuracy, use |
||||
|
#' \code{edns_client_subnet=0.0.0.0/0}. Google Public DNS normally sends |
||||
|
#' approximate network information (usually replacing the last part of |
||||
|
#' your IPv4 address with zeroes). \code{0.0.0.0/0} is the default. |
||||
|
#' @return \code{data.frame} of only answers (use \code{query()} for detailed responses) |
||||
|
#' @references \url{https://developers.google.com/speed/public-dns/docs/dns-over-https} |
||||
|
#' @export |
||||
|
#' @note this is a fairly naive function. It expects \code{Answer} to be one of the |
||||
|
#' return value list slots. The intent for it was to make it easier |
||||
|
#' to do bulk forward queries. It will get smarter in future versions. |
||||
|
#' @examples |
||||
|
#' hosts <- c("rud.is", "r-project.org", "rstudio.com", "apple.com") |
||||
|
#' gdns::bulk_query(hosts) |
||||
|
bulk_query <- function(entities, type = 1, edns_client_subnet = "0.0.0.0/0") { |
||||
|
|
||||
|
map( |
||||
|
entities, |
||||
|
gdns::query, |
||||
|
type = type, |
||||
|
edns_client_subnet = edns_client_subnet |
||||
|
) -> results |
||||
|
|
||||
|
results <- set_names(results, entities) |
||||
|
|
||||
|
map_df(results, ~.x$Answer, .id = "query") |
||||
|
|
||||
|
} |
Binary file not shown.
@ -0,0 +1,23 @@ |
|||||
|
% Generated by roxygen2: do not edit by hand |
||||
|
% Please edit documentation in R/gdns-package.r |
||||
|
\docType{data} |
||||
|
\name{resource_record_tbl} |
||||
|
\alias{resource_record_tbl} |
||||
|
\title{An overview of resource records (RRs) permissible in zone files of the Domain Name System (DNS)} |
||||
|
\format{A data frame with 39 rows and 4 variables: |
||||
|
\describe{ |
||||
|
\item{type}{numeric type of the resource record} |
||||
|
\item{name}{short name of the resource record} |
||||
|
\item{description}{short description of the resource record} |
||||
|
\item{purpose}{long-form description of the resource record purpose/function/usage} |
||||
|
}} |
||||
|
\source{ |
||||
|
\url{https://en.wikipedia.org/wiki/List_of_DNS_record_types} |
||||
|
} |
||||
|
\usage{ |
||||
|
resource_record_tbl |
||||
|
} |
||||
|
\description{ |
||||
|
A dataset containing the DNS resource record types, names, description and purpose |
||||
|
} |
||||
|
\keyword{datasets} |
Loading…
Reference in new issue