README.md

zdnsr

Perform Bulk ‘DNS’ Queries Using ‘zdns’

Description

Provides wrapper/helper methods for executing ‘zdns’ (https://github.com/zmap/zdns) bulk queries along with utility methods to retrieve and cache ‘Public DNS’ (http://public-dns.info/) nameserver lists.

What’s Inside The Tin

The following functions are implemented:

Installation

devtools::install_github("hrbrmstr/zdnsr")

Usage

library(zdnsr)

# current verison
packageVersion("zdnsr")
## [1] '0.1.0'

Example (top prefix enumeration)

c(
  "www", "mail", "mx", "blog", "ns1", "ns2", "dev", "server", "email", 
  "cloud", "api", "support", "smtp", "app", "webmail", "test", "box", 
  "m", "admin", "forum", "news", "web", "mail2", "ns", "demo", "my", 
  "portal", "shop", "host", "cdn", "git", "vps", "mx1", "mail1", 
  "static", "help", "ns3", "beta", "chat", "secure", "staging", "vpn", 
  "apps", "server1", "ftp", "crm", "new", "wiki",  "home", "info"
) -> top_common_prefixes # via Rapid7 FDNS analysis

tf <- tempfile(fileext = ".json")

zdns_query(
  sprintf("%s.rstudio.com", top_common_prefixes),
  query_type = "A",
  num_nameservers = (length(top_common_prefixes) * 2),
  output_file = tf
)
## zmap error log will be stored in /var/folders/1w/2d82v7ts3gs98tc6v772h8s40000gp/T//RtmpQLNb6f/zmap-error6f90237c7564.json
res <- jsonlite::stream_in(file(tf))
## opening file input connection.

## 
 Found 50 records...
 Imported 50 records. Simplifying...

## closing file input connection.
unlink(tf)

found <- which(lengths(res$data$answers) > 0)

do.call(
  rbind.data.frame,
  lapply(found, function(idx) {
    res$data$answers[[idx]]$query_name <- res$name[idx]
    res$data$answers[[idx]]
  })
) -> xdf

xdf <- xdf[,c("query_name", "name", "class", "ttl", "type", "answer")]

knitr::kable(xdf)

| query_name | name | class | ttl | type | answer | | :------------------ | :------------------------- | :---- | ---: | :---- | :-------------------------- | | wiki.rstudio.com | wiki.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | wiki.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | cloud.rstudio.com | cloud.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | cloud.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | support.rstudio.com | support.rstudio.com | IN | 2978 | CNAME | rstudioide.ssl.zendesk.com. | | support.rstudio.com | rstudioide.ssl.zendesk.com | IN | 278 | CNAME | rstudioide.zendesk.com. | | support.rstudio.com | rstudioide.zendesk.com | IN | 563 | A | 35.174.158.178 | | support.rstudio.com | rstudioide.zendesk.com | IN | 563 | A | 54.208.38.43 | | support.rstudio.com | rstudioide.zendesk.com | IN | 563 | A | 35.174.160.246 | | test.rstudio.com | test.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | test.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | vpn.rstudio.com | vpn.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | vpn.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | ns.rstudio.com | ns.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | ns.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | admin.rstudio.com | admin.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | admin.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | mail2.rstudio.com | mail2.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | mail2.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | static.rstudio.com | static.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | static.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | mx1.rstudio.com | mx1.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | mx1.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | ns3.rstudio.com | ns3.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | ns3.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | dev.rstudio.com | dev.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | dev.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | ns1.rstudio.com | ns1.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | ns1.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | www.rstudio.com | www.rstudio.com | IN | 3600 | CNAME | rstudio.wpengine.com. | | www.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | staging.rstudio.com | staging.rstudio.com | IN | 299 | CNAME | www.rstudio.com. | | staging.rstudio.com | www.rstudio.com | IN | 3599 | CNAME | rstudio.wpengine.com. | | staging.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | news.rstudio.com | news.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | news.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | ns2.rstudio.com | ns2.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | ns2.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | email.rstudio.com | email.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | email.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | server.rstudio.com | server.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | server.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | shop.rstudio.com | shop.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | shop.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | crm.rstudio.com | crm.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | crm.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | host.rstudio.com | host.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | host.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | info.rstudio.com | info.rstudio.com | IN | 3600 | CNAME | mkto-ab020217.com. | | info.rstudio.com | mkto-ab020217.com | IN | 300 | A | 199.15.213.48 | | web.rstudio.com | web.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | web.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | portal.rstudio.com | portal.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | portal.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | mx.rstudio.com | mx.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | mx.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | mail1.rstudio.com | mail1.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | mail1.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | webmail.rstudio.com | webmail.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | webmail.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | api.rstudio.com | api.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | api.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | help.rstudio.com | help.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | help.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | secure.rstudio.com | secure.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | secure.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | new.rstudio.com | new.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | new.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | my.rstudio.com | my.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | my.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | vps.rstudio.com | vps.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | vps.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | smtp.rstudio.com | smtp.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | smtp.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | demo.rstudio.com | demo.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | demo.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | git.rstudio.com | git.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | git.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | cdn.rstudio.com | cdn.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | cdn.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | m.rstudio.com | m.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | m.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | mail.rstudio.com | mail.rstudio.com | IN | 3600 | CNAME | ghs.googlehosted.com. | | mail.rstudio.com | ghs.googlehosted.com | IN | 69 | A | 172.217.6.243 | | forum.rstudio.com | forum.rstudio.com | IN | 59 | CNAME | rstudio.wpengine.com. | | forum.rstudio.com | rstudio.wpengine.com | IN | 119 | A | 104.196.200.5 | | box.rstudio.com | box.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | box.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | home.rstudio.com | home.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | home.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | chat.rstudio.com | chat.rstudio.com | IN | 30 | CNAME | rstudio.wpengine.com. | | chat.rstudio.com | rstudio.wpengine.com | IN | 30 | A | 104.196.200.5 | | beta.rstudio.com | beta.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | beta.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | ftp.rstudio.com | ftp.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | ftp.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 | | blog.rstudio.com | blog.rstudio.com | IN | 300 | CNAME | rstudio-blog.netlify.com. | | blog.rstudio.com | rstudio-blog.netlify.com | IN | 20 | A | 35.198.30.40 | | server1.rstudio.com | server1.rstudio.com | IN | 60 | CNAME | rstudio.wpengine.com. | | server1.rstudio.com | rstudio.wpengine.com | IN | 120 | A | 104.196.200.5 |



hrbrmstr/zdnsr documentation built on Feb. 28, 2020, 9:35 a.m.