R/RcppExports.R

# This file was generated by Rcpp::compileAttributes
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#' Returns the DNS A records for a given FQDN
#'
#' @param fqdn input character vector (FQDN)
#' @param nameserver the nameserver to send the request to (optional; uses standard resolver behavior if not specified)
#' @param showWarnings display R warning messages (bool)
#' @param full include full record response information in results (bool)
#' @return vector or data frame (if \code{full}==\code{TRUE}) of A records or \code{character(0)} if none
#' @seealso \url{http://www.nlnetlabs.nl/projects/ldns/}
#' @seealso \url{http://www.cambus.net/interesting-dns-hacks/} (cool DNS A hacks vla \url{https://twitter.com/habbie/status/460067198586081280})
#' @export
#' @examples
#' \dontrun{
#' require(resolv)
#' 
#' ## single address return
#' resolv_a("etsy.com")
#' [1] "38.106.64.123"
#' 
#' ## multiple address returns
#' resolv_a("google.com")
#' [1] "173.194.43.0"  "173.194.43.1"  "173.194.43.2"  "173.194.43.3" 
#' [5] "173.194.43.4"  "173.194.43.5"  "173.194.43.6"  "173.194.43.7" 
#' [9] "173.194.43.8"  "173.194.43.9"  "173.194.43.14"
#' 
#' ## must put at least one DNS hack in
#' resolv_a("10.15.add.calc.postel.org", "dns.postel.org")
#' [1] "0.25.0.0"
#' }
resolv_a <- function(fqdn, nameserver = NA_character_, showWarnings = FALSE, full = FALSE) {
    .Call('resolv_resolv_a', PACKAGE = 'resolv', fqdn, nameserver, showWarnings, full)
}

#' Returns the DNS TXT records for a given FQDN
#'
#' @param fqdn input character vector (FQDN)
#' @param nameserver the nameserver to send the request to (optional; uses standard resolver behavior if not specified)
#' @param showWarnings display R warning messages (bool)
#' @param full include full record response information in results (bool)
#' @return vector or data frame (if \code{full}==\code{TRUE}) of TXT records or \code{character(0)} if none
#' @seealso \url{http://www.nlnetlabs.nl/projects/ldns/}
#' @seealso \url{http://www.cambus.net/interesting-dns-hacks/} (cool DNS TXT hacks vla \url{https://twitter.com/habbie/status/460067198586081280})
#' @export
#' @examples
#' \dontrun{
#' require(resolv)
#' 
#' ## get the TXT record for Google
#' resolv_txt("google.com")
#' [1] "\"v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all\""
#' 
#' ## Use Team CYMRU ASN TXT record lookup service
#' resolv_txt("31.108.90.216.origin.asn.cymru.com")
#' [1] "\"23028 | 216.90.108.0/24 | US | arin |\""
#'
#' ## Wikipedia lookups:
#' resolv_txt("bind.wp.dg.cx")
#' [1] "\"BIND , or named , is the most widely used DNS software on the Internet. On Unix-like operating systems it is the de facto standard. http://en.wikipedia.org/wiki/BIND\""
#'
#' ## seekrit URLs
#' browseURL(gsub("\"", "", resolv_txt("google-public-dns-a.google.com")))
#' 
#' ## get the TXT records for PayPal
#' resolv_txt("paypal.com")
#' [1] "\"MS=ms96239109\""                                                                                                                                                                                        
#' [2] "\"yandex-verification: 73acb90f6a9abd76\""                                                                                                                                                                
#' [3] "\"google-site-verification=NrhK1Hj7KuCPua1OcvfacDawt46H9VjByS4IAw5vsFA\""                                                                                                                                 
#' [4] "\"v=spf1 include:pp._spf.paypal.com include:3rdparty._spf.paypal.com include:3rdparty1._spf.paypal.com include:3rdparty2._spf.paypal.com include:3rdparty3._spf.paypal.com include:c._spf.ebay.com ~all\""
#' }
resolv_txt <- function(fqdn, nameserver = NA_character_, showWarnings = FALSE, full = FALSE) {
    .Call('resolv_resolv_txt', PACKAGE = 'resolv', fqdn, nameserver, showWarnings, full)
}

#' Returns the DNS MX records for a given domain
#'
#' @param fqdn input character vector (domain name)
#' @param nameserver the nameserver to send the request to (optional; uses standard resolver behavior if not specified)
#' @param showWarnings display R warning messages (bool)
#' @param full include full record response information in results (bool)
#' @return data frame of MX records (preference & exchange; +owner,class,ttl if \code{full}==\code{TRUE}) or an empty data frame if none
#' @seealso \url{http://www.nlnetlabs.nl/projects/ldns/}
#' @seealso \url{http://www.cambus.net/interesting-dns-hacks/} (cool DNS MX hacks vla \url{https://twitter.com/habbie/status/460067198586081280})
#' @export
#' @examples
#' \dontrun{
#' require(resolv)
#' 
#' resolv_mx("rudis.net", full=TRUE)
#' ##        fqdn prefernece                 exchange      owner class ttl
#' ## 1 rudis.net          1      aspmx.l.google.com. rudis.net.     1 599
#' ## 2 rudis.net          5 alt1.aspmx.l.google.com. rudis.net.     1 599
#' ## 3 rudis.net          5 alt2.aspmx.l.google.com. rudis.net.     1 599
#' ## 4 rudis.net         10   aspmx2.googlemail.com. rudis.net.     1 599
#' ## 5 rudis.net         10   aspmx3.googlemail.com. rudis.net.     1 599
#' ## 6 rudis.net         10   aspmx4.googlemail.com. rudis.net.     1 599
#' ## 7 rudis.net         10   aspmx5.googlemail.com. rudis.net.     1 599
#' ## 8 rudis.net        100  mx-caprica.easydns.com. rudis.net.     1 599
#' }
resolv_mx <- function(fqdn, nameserver = NA_character_, showWarnings = FALSE, full = FALSE) {
    .Call('resolv_resolv_mx', PACKAGE = 'resolv', fqdn, nameserver, showWarnings, full)
}

#' Returns the DNS CNAME records for a given FQDN
#'
#' @param fqdn input character vector (FQDN)
#' @param nameserver the nameserver to send the request to (optional; uses standard resolver behavior if not specified)
#' @param showWarnings display R warning messages (bool)
#' @param full include full record response information in results (bool)
#' @return vector or data frame (if \code{full}==\code{TRUE}) of CNAME records or \code{character(0)} if none
#' @seealso \url{http://www.nlnetlabs.nl/projects/ldns/}
#' @seealso \url{http://www.cambus.net/interesting-dns-hacks/}
#' @export
#' @examples
#' \dontrun{
#' require(resolv)
#'
#' resolv_cname("www.paypal.com")
#' [1] "www.paypal.com.akadns.net."
#' }
resolv_cname <- function(fqdn, nameserver = NA_character_, showWarnings = FALSE, full = FALSE) {
    .Call('resolv_resolv_cname', PACKAGE = 'resolv', fqdn, nameserver, showWarnings, full)
}

#' Returns the DNS NS records for a given FQDN
#'
#' @param fqdn input character vector (FQDN)
#' @param nameserver the nameserver to send the request to (optional; uses standard resolver behavior if not specified)
#' @param showWarnings display R warning messages (bool)
#' @param full include full record response information in results (bool)
#' @return vector or data frame (if \code{full}==\code{TRUE}) of NS records or \code{character(0)} if none
#' @seealso \url{http://www.nlnetlabs.nl/projects/ldns/}
#' @seealso \url{http://www.cambus.net/interesting-dns-hacks/}
#' @export
#' @examples
#' \dontrun{
#' require(resolv)
#'
#' resolv_ns("www.paypal.com")
#' }
resolv_ns <- function(fqdn, nameserver = NA_character_, showWarnings = FALSE, full = FALSE) {
    .Call('resolv_resolv_ns', PACKAGE = 'resolv', fqdn, nameserver, showWarnings, full)
}

#' Returns the DNS PTR records for a given IP address
#'
#' @param ip address input character vector (FQDN)
#' @param nameserver the nameserver to send the request to (optional; uses standard resolver behavior if not specified)
#' @param showWarnings display R warning messages (bool)
#' @param full include full record response information in results (bool)
#' @return vector or data frame (if \code{full}==\code{TRUE}) of PTR records or \code{character(0)} if none
#' @seealso \url{http://www.nlnetlabs.nl/projects/ldns/}
#' @seealso \url{http://www.cambus.net/interesting-dns-hacks/}
#' @export
#' @examples
#' \dontrun{
#' require(resolv)
#'
#' # where www.nasa.gov hosts
#' resolv_a("www.nasa.gov")
#' [1] "69.28.187.45"    "208.111.161.110"
#' 
#' resolv_ptr("69.28.187.45")
#' [1] "cds355.iad.llnw.net."
#' 
#' ## big one - truncated output
#' resolv_ptr("17.149.160.49")
#'   [1] "asto.re."                   "next.com."                 
#'   [3] "qtml.com."                  "qttv.net."                 
#'   [5] "apple.com."                 "apple.info."               
#'   [7] "ikids.com."                 "qt-tv.net."                
#'   [9] "carbon.com."                "eworld.com."
#' ...  
#' [131] "quicktimestreaming.net."    "publishing-research.com."  
#' [133] "publishing-research.org."   "applefinalcutproworld.com."
#' [135] "applefinalcutproworld.net." "applefinalcutproworld.org."
#' }
resolv_ptr <- function(ip, nameserver = NA_character_, showWarnings = FALSE, full = FALSE) {
    .Call('resolv_resolv_ptr', PACKAGE = 'resolv', ip, nameserver, showWarnings, full)
}

#' Returns the DNS SRV records for a given FQDN
#'
#' @param fqdn input character vector (FQDN)
#' @param nameserver the nameserver to send the request to (optional; uses standard resolver behavior if not specified)
#' @param showWarnings display R warning messages (bool)
#' @param full include full record response information in results (bool)
#' @return data frame of SRV records (named fields; +owner,class,ttl if \code{full}==\code{TRUE}) or an empty list if none
#' @seealso \url{http://www.nlnetlabs.nl/projects/ldns/}
#' @seealso \url{http://www.cambus.net/interesting-dns-hacks/}
#' @export
#' @examples
#' \dontrun{
#' require(resolv)
#' library(plyr)
#' 
#' ## google talk provides a good example for this
#' resolv_srv("_xmpp-server._tcp.gmail.com.", full=TRUE)
#' ##                           fqdn priority weight port                         target                        owner class ttl
#' ## 1 _xmpp-server._tcp.gmail.com.        5      0 5269      xmpp-server.l.google.com. _xmpp-server._tcp.gmail.com.     1 804
#' ## 2 _xmpp-server._tcp.gmail.com.       20      0 5269 alt1.xmpp-server.l.google.com. _xmpp-server._tcp.gmail.com.     1 804
#' ## 3 _xmpp-server._tcp.gmail.com.       20      0 5269 alt2.xmpp-server.l.google.com. _xmpp-server._tcp.gmail.com.     1 804
#' ## 4 _xmpp-server._tcp.gmail.com.       20      0 5269 alt3.xmpp-server.l.google.com. _xmpp-server._tcp.gmail.com.     1 804
#' ## 5 _xmpp-server._tcp.gmail.com.       20      0 5269 alt4.xmpp-server.l.google.com. _xmpp-server._tcp.gmail.com.     1 804
#' }
resolv_srv <- function(fqdn, nameserver = NA_character_, showWarnings = FALSE, full = FALSE) {
    .Call('resolv_resolv_srv', PACKAGE = 'resolv', fqdn, nameserver, showWarnings, full)
}
hrbrmstr/resolv documentation built on May 17, 2019, 5:12 p.m.