Browse Source

pkgdown

tags/v0.3.1
Bob Rudis 8 years ago
parent
commit
3db61f760b
  1. 434
      docs/index.html
  2. 97
      docs/news/index.html
  3. 59
      docs/pkgdown.css
  4. 13
      docs/pkgdown.js
  5. 145
      docs/reference/bulk_query.html
  6. 111
      docs/reference/gdns.html
  7. 99
      docs/reference/has_spf.html
  8. 107
      docs/reference/index.html
  9. 103
      docs/reference/is_soft_fail.html
  10. 430
      docs/reference/query.html
  11. 107
      docs/reference/spf_ipv4s.html
  12. 102
      docs/reference/split_spf.html

434
docs/index.html

@ -0,0 +1,434 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Home. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="pkgdown.css" rel="stylesheet">
<script src="pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="index.html">Home</a>
</li>
<li>
<a href="reference/index.html">Reference</a>
</li>
<li>
<a href="news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="row">
<div class="col-md-9">
<p><a href="https://travis-ci.org/hrbrmstr/gdns"><img src="https://travis-ci.org/hrbrmstr/gdns.svg?branch=master" alt="Travis-CI Build Status"></a></p>
<p><code>gdns</code> : Tools to work with the Google DNS over HTTPS API</p>
<p>Traditional DNS queries and responses are sent over UDP or TCP without encryption. This is vulnerable to eavesdropping and spoofing (including DNS-based Internet filtering). Responses from recursive resolvers to clients are the most vulnerable to undesired or malicious changes, while communications between recursive resolvers and authoritative nameservers often incorporate additional protection.</p>
<p>To address this problem, Google Public DNS offers DNS resolution over an encrypted HTTPS connection. DNS-over-HTTPS greatly enhances privacy and security between a client and a recursive resolver, and complements DNSSEC to provide end-to-end authenticated DNS lookups.</p>
<p>More info at <a href="https://developers.google.com/speed/public-dns/docs/dns-over-https" class="uri">https://developers.google.com/speed/public-dns/docs/dns-over-https</a>.</p>
<p>The following functions are implemented:</p>
<ul>
<li>
<code>bulk_query</code>: Vectorized query, returning only answers in a data frame</li>
<li>
<code>has_spf</code>: Test for whether a DNS TXT record is an SPF record</li>
<li>
<code>is_hard_fail</code>: SPF &ldquo;all&rdquo; type test</li>
<li>
<code>is_soft_fail</code>: SPF &ldquo;all&rdquo; type test</li>
<li>
<code>passes_all</code>: SPF &ldquo;all&rdquo; type test</li>
<li>
<code>query</code>: Perform DNS over HTTPS queries using Google</li>
<li>
<code>spf_exists</code>: SPF field extraction functions</li>
<li>
<code>spf_includes</code>: SPF field extraction functions</li>
<li>
<code>spf_ipv4s</code>: SPF field extraction functions</li>
<li>
<code>spf_ipv6s</code>: SPF field extraction functions</li>
<li>
<code>spf_ptrs</code>: SPF field extraction functions</li>
<li>
<code>split_spf</code>: Split out all SPF records in a domain&rsquo;s TXT record</li>
</ul>
<h3 id="installation">Installation</h3>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">devtools::<span class="kw">install_github</span>(<span class="st">"hrbrmstr/gdns"</span>)</code></pre></div>
<h3 id="usage">Usage</h3>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(gdns)
<span class="co"># current verison</span>
<span class="kw">packageVersion</span>(<span class="st">"gdns"</span>)
<span class="co">#&gt; [1] '0.2.0.9000'</span>
<span class="kw"><a href="reference/query.html">query</a></span>(<span class="st">"rud.is"</span>)
<span class="co">#&gt; $Status</span>
<span class="co">#&gt; [1] 0</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $TC</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RD</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RA</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $AD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $CD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Question</span>
<span class="co">#&gt; name type</span>
<span class="co">#&gt; 1 rud.is. 1</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Answer</span>
<span class="co">#&gt; name type TTL data</span>
<span class="co">#&gt; 1 rud.is. 1 3599 104.236.112.222</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Additional</span>
<span class="co">#&gt; list()</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $edns_client_subnet</span>
<span class="co">#&gt; [1] "0.0.0.0/0"</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Comment</span>
<span class="co">#&gt; [1] "Response from dns.mwebdns.net.(84.246.124.75)"</span>
<span class="kw"><a href="reference/query.html">query</a></span>(<span class="st">"example.com"</span>, <span class="st">"255"</span>) <span class="co"># "ANY" query</span>
<span class="co">#&gt; $Status</span>
<span class="co">#&gt; [1] 0</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $TC</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RD</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RA</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $AD</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $CD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Question</span>
<span class="co">#&gt; name type</span>
<span class="co">#&gt; 1 example.com. 255</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Answer</span>
<span class="co">#&gt; name type TTL</span>
<span class="co">#&gt; 1 example.com. 6 3599</span>
<span class="co">#&gt; 2 example.com. 46 21599</span>
<span class="co">#&gt; 3 example.com. 46 21599</span>
<span class="co">#&gt; 4 example.com. 46 3599</span>
<span class="co">#&gt; 5 example.com. 46 59</span>
<span class="co">#&gt; 6 example.com. 46 21599</span>
<span class="co">#&gt; 7 example.com. 46 3599</span>
<span class="co">#&gt; 8 example.com. 46 3599</span>
<span class="co">#&gt; 9 example.com. 46 3599</span>
<span class="co">#&gt; 10 example.com. 47 3599</span>
<span class="co">#&gt; 11 example.com. 2 21599</span>
<span class="co">#&gt; 12 example.com. 2 21599</span>
<span class="co">#&gt; 13 example.com. 28 21599</span>
<span class="co">#&gt; 14 example.com. 1 21599</span>
<span class="co">#&gt; 15 example.com. 16 59</span>
<span class="co">#&gt; 16 example.com. 16 59</span>
<span class="co">#&gt; 17 example.com. 48 3599</span>
<span class="co">#&gt; 18 example.com. 48 3599</span>
<span class="co">#&gt; 19 example.com. 48 3599</span>
<span class="co">#&gt; data</span>
<span class="co">#&gt; 1 sns.dns.icann.org. noc.dns.icann.org. 2015082662 7200 3600 1209600 3600</span>
<span class="co">#&gt; 2 a 8 2 86400 1476095331 1474297785 1704 example.com. OnhJa3/aHkvePBvBME3nlZrkU/rdenyaquFgSYI/wKPq2/ZJVZGhv0TVBMJ5l6GZujqnyBfq9cvvb88//koi17oNjR5JEv2cv4rLT5pud3VhQdVrHD7fU8BV/YnCpP3ikXJMgjf6sAhgL7FZKLtpv7cFXnqznfRCTZ3HKkpBtAB0ZZw=</span>
<span class="co">#&gt; 3 ns 8 2 86400 1476218628 1474362585 1704 example.com. dxPw4KtqLRMR/P1MB7umTClO/Tgf5X2ukJApKd133OMPhsy7c2N3QIxW4TLxZnCezUewDE1D86HBnGi1kGw4pN4W83lI37L6pTjIkDUtrc1acISOwg9Q9JM74On9/qKTGpTi7aSGVA5t4biLKqPm00a1Yu/VNPOxeLQPyYNjUYspNZ8=</span>
<span class="co">#&gt; 4 soa 8 2 3600 1476508736 1474722585 1704 example.com. rHojLwiWn5xVU8noy1se7gRjiNI6GJdDcxwO1GU1qUs3Un4y7LyENjrK8qOv2z6EhblBOhPnrgnNMzEPPH3w+5azpU6xAH+jJHO4tExj4Pc3zzQ1sfFx1k8xWPfJjiWnUtUsk19y8vVqHvLXltvVItXlCClzljA0XyNUi1fvYjHbQxI=</span>
<span class="co">#&gt; 5 txt 8 2 60 1476051975 1474218584 1704 example.com. FBZiE56Ux4VY5AMVtgitLIBWi+UteNSFh4BWwJksVRRt/7OoH7iD6h4UDqP8rNbk9qvXmRo4Ce2vROCbNkdTy/IDEoKo+Urfm69TuI2UTbl/nnQ2UtfMIEC83yywYRWdra5BPkt67SQhHSc4N7QHblABFbm2jPuu2+uOqaRCpfeoWYo=</span>
<span class="co">#&gt; 6 aaaa 8 2 86400 1475967038 1474146584 1704 example.com. ZQgPaEBxSxHCPhOES76xksqOVYSRtNIieIwTwIo4Oceq0NGzjOyI+8wrgs79QHqs4e5SRe67hVX2rSaJ9Q167+TuQz57ZtyqeOZ+x+cgULyT1Q+8N0ZJlHpZS4i2VfR1xT+quG+0m9wtye8wA3Hl2mWPyTjtsH7mjoS7/U/ZQMJwi44=</span>
<span class="co">#&gt; 7 nsec 8 2 3600 1475694918 1473887384 1704 example.com. XTCfotH8+cSDgNrFnCNWt4lx64yTnVzwOMZsFgynNSGS5LzY0VfRl7UvTH2WDVzdsIHgKpPBOUwv/DvjNhAMzUgHFlaK/A+U1aFa16/YQkqkIqqfnCA4EgBdhIK4FM3dSIVcpaj3PhGFKvMG4RBvoMAWLRXE3gKf3306CJzX1sfKdsA=</span>
<span class="co">#&gt; 8 dnskey 8 2 3600 1476561735 1474722585 31406 example.com. Oup7snCR/5iUmTuGyHfCfFCisTeqaJ8RHD6aE9wZQR2CCkKZHXO9dzfUL1gA6T35p4T0XeM+TMlv1uZhX157RnanPwyZluancmm5cNz5ub0vG7G/O4DxnSoLmATYoBJ7Ub9Ul4iWFUE7nvyJ23X2MhX6XTiplXYPnztiem6rJLV84JiemoKtvapWchRhFi4w4Y+BdjHfY7IRERjQYNhVuaus5+EeppIoot9srsj2suXePGC7dE0R8z9K/BTYvQi76kBlJzzF9fNNy5JvyZPEUpXATuRD7KfxBsWHaFajOnYOb1eDAL/C0H3hhjVBov2Pexp7YDIsJzIa2g8850LruQ==</span>
<span class="co">#&gt; 9 dnskey 8 2 3600 1476561735 1474722585 45620 example.com. f+aO6V+QKA4XgTC0Vqow59jBP/NlX6f7EEbaoXts0lp7Vaj/DBrhnS/sT4BbJb3VK1MvuPmNre5t0eyOeNCjbjrwIM2uf41GFuBI0AFxQx7o2PIdf1vrXsDnUGsZrMkYMv4gr802S7MXsvMdMN5cM0AA5Zol888sLP1yrHIcfNxG8hoUn3dS0L6nd/OxkL70+NjHBTjBQLqkLsK92ryJ0CWrzcJElszBRqfQfYGV/sJ84Ko4tjnBqRuki/rmTW5KQYdE7NI+MvERtGnep7RHb02Luk7BFPPD3uh353EYSAOVHrMH4fte6mJGcj3vxErfSWakRUXQpovLNcqYZNxoGQ==</span>
<span class="co">#&gt; 10 www.example.com. A NS SOA TXT AAAA RRSIG NSEC DNSKEY</span>
<span class="co">#&gt; 11 a.iana-servers.net.</span>
<span class="co">#&gt; 12 b.iana-servers.net.</span>
<span class="co">#&gt; 13 2606:2800:220:1:248:1893:25c8:1946</span>
<span class="co">#&gt; 14 93.184.216.34</span>
<span class="co">#&gt; 15 "v=spf1 -all"</span>
<span class="co">#&gt; 16 "$Id: example.com 4415 2015-08-24 20:12:23Z davids $"</span>
<span class="co">#&gt; 17 256 3 8 AwEAAa3d68DfyIs03nGYpi3a9YX+f/wln3g6dhWWzjUUqp6CGXuaOdEHfS8zI/5JdGKi8Xoc4YmjPGfiCJIkCiQnMKn/QFygpZs41ANLdPp2jJlJhFA6IHE/xxTCxJfNhsdEAOGlMORN9Zu1XLUBo/IuCDUvUzZPgalivd/m9L+Jr4kxbg3v</span>
<span class="co">#&gt; 18 257 3 8 AwEAAZ0aqu1rJ6orJynrRfNpPmayJZoAx9Ic2/Rl9VQWLMHyjxxem3VUSoNUIFXERQbj0A9Ogp0zDM9YIccKLRd6LmWiDCt7UJQxVdD+heb5Ec4qlqGmyX9MDabkvX2NvMwsUecbYBq8oXeTT9LRmCUt9KUt/WOi6DKECxoG/bWTykrXyBR8elD+SQY43OAVjlWrVltHxgp4/rhBCvRbmdflunaPIgu27eE2U4myDSLT8a4A0rB5uHG4PkOa9dIRs9y00M2mWf4lyPee7vi5few2dbayHXmieGcaAHrx76NGAABeY393xjlmDNcUkF1gpNWUla4fWZbbaYQzA93mLdrng+M=</span>
<span class="co">#&gt; 19 257 3 8 AwEAAbOFAxl+Lkt0UMglZizKEC1AxUu8zlj65KYatR5wBWMrh18TYzK/ig6Y1t5YTWCO68bynorpNu9fqNFALX7bVl9/gybA0v0EhF+dgXmoUfRX7ksMGgBvtfa2/Y9a3klXNLqkTszIQ4PEMVCjtryl19Be9/PkFeC9ITjgMRQsQhmB39eyMYnal+f3bUxKk4fq7cuEU0dbRpue4H/N6jPucXWOwiMAkTJhghqgy+o9FfIp+tR/emKao94/wpVXDcPf5B18j7xz2SvTTxiuqCzCMtsxnikZHcoh1j4g+Y1B8zIMIvrEM+pZGhh/Yuf4RwCBgaYCi9hpiMWVvS4WBzx0/lU=</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Additional</span>
<span class="co">#&gt; list()</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $edns_client_subnet</span>
<span class="co">#&gt; [1] "0.0.0.0/0"</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Comment</span>
<span class="co">#&gt; [1] "Response from 199.43.135.53"</span>
<span class="kw"><a href="reference/query.html">query</a></span>(<span class="st">"microsoft.com"</span>, <span class="st">"MX"</span>)
<span class="co">#&gt; $Status</span>
<span class="co">#&gt; [1] 0</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $TC</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RD</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RA</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $AD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $CD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Question</span>
<span class="co">#&gt; name type</span>
<span class="co">#&gt; 1 microsoft.com. 15</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Answer</span>
<span class="co">#&gt; name type TTL data</span>
<span class="co">#&gt; 1 microsoft.com. 15 1509 10 microsoft-com.mail.protection.outlook.com.</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Additional</span>
<span class="co">#&gt; list()</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $edns_client_subnet</span>
<span class="co">#&gt; [1] "0.0.0.0/0"</span>
<span class="kw"><a href="reference/query.html">query</a></span>(<span class="st">"google-public-dns-a.google.com"</span>, <span class="st">"TXT"</span>)
<span class="co">#&gt; $Status</span>
<span class="co">#&gt; [1] 0</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $TC</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RD</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RA</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $AD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $CD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Question</span>
<span class="co">#&gt; name type</span>
<span class="co">#&gt; 1 google-public-dns-a.google.com. 16</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Answer</span>
<span class="co">#&gt; name type TTL data</span>
<span class="co">#&gt; 1 google-public-dns-a.google.com. 16 21599 "http://xkcd.com/1361/"</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Additional</span>
<span class="co">#&gt; list()</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $edns_client_subnet</span>
<span class="co">#&gt; [1] "0.0.0.0/0"</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Comment</span>
<span class="co">#&gt; [1] "Response from 216.239.36.10"</span>
<span class="kw"><a href="reference/query.html">query</a></span>(<span class="st">"apple.com"</span>)
<span class="co">#&gt; $Status</span>
<span class="co">#&gt; [1] 0</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $TC</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RD</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RA</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $AD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $CD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Question</span>
<span class="co">#&gt; name type</span>
<span class="co">#&gt; 1 apple.com. 1</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Answer</span>
<span class="co">#&gt; name type TTL data</span>
<span class="co">#&gt; 1 apple.com. 1 3413 17.172.224.47</span>
<span class="co">#&gt; 2 apple.com. 1 3413 17.178.96.59</span>
<span class="co">#&gt; 3 apple.com. 1 3413 17.142.160.59</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Additional</span>
<span class="co">#&gt; list()</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $edns_client_subnet</span>
<span class="co">#&gt; [1] "0.0.0.0/0"</span>
<span class="kw"><a href="reference/query.html">query</a></span>(<span class="st">"17.142.160.59"</span>, <span class="st">"PTR"</span>)
<span class="co">#&gt; $Status</span>
<span class="co">#&gt; [1] 0</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $TC</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RD</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $RA</span>
<span class="co">#&gt; [1] TRUE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $AD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $CD</span>
<span class="co">#&gt; [1] FALSE</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Question</span>
<span class="co">#&gt; name type</span>
<span class="co">#&gt; 1 59.160.142.17.in-addr.arpa. 12</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Answer</span>
<span class="co">#&gt; name type TTL data</span>
<span class="co">#&gt; 1 59.160.142.17.in-addr.arpa. 12 3025 apples-msk.ru.</span>
<span class="co">#&gt; 2 59.160.142.17.in-addr.arpa. 12 3025 icloud.se.</span>
<span class="co">#&gt; 3 59.160.142.17.in-addr.arpa. 12 3025 icloud.es.</span>
<span class="co">#&gt; 4 59.160.142.17.in-addr.arpa. 12 3025 icloud.om.</span>
<span class="co">#&gt; 5 59.160.142.17.in-addr.arpa. 12 3025 icloudo.com.</span>
<span class="co">#&gt; 6 59.160.142.17.in-addr.arpa. 12 3025 icloud.ch.</span>
<span class="co">#&gt; 7 59.160.142.17.in-addr.arpa. 12 3025 icloud.fr.</span>
<span class="co">#&gt; 8 59.160.142.17.in-addr.arpa. 12 3025 icloude.com.</span>
<span class="co">#&gt; 9 59.160.142.17.in-addr.arpa. 12 3025 camelspaceeffect.com.</span>
<span class="co">#&gt; 10 59.160.142.17.in-addr.arpa. 12 3025 camelphat.com.</span>
<span class="co">#&gt; 11 59.160.142.17.in-addr.arpa. 12 3025 alchemysynth.com.</span>
<span class="co">#&gt; 12 59.160.142.17.in-addr.arpa. 12 3025 openni.org.</span>
<span class="co">#&gt; 13 59.160.142.17.in-addr.arpa. 12 3025 swell.am.</span>
<span class="co">#&gt; 14 59.160.142.17.in-addr.arpa. 12 3025 appleweb.net.</span>
<span class="co">#&gt; 15 59.160.142.17.in-addr.arpa. 12 3025 apple.com.</span>
<span class="co">#&gt; 16 59.160.142.17.in-addr.arpa. 12 3025 pv-apple-com.apple.com.</span>
<span class="co">#&gt; 17 59.160.142.17.in-addr.arpa. 12 3025 ripmixburn.com.</span>
<span class="co">#&gt; 18 59.160.142.17.in-addr.arpa. 12 3025 yessql.info.</span>
<span class="co">#&gt; 19 59.160.142.17.in-addr.arpa. 12 3025 webobjects.info.</span>
<span class="co">#&gt; 20 59.160.142.17.in-addr.arpa. 12 3025 ubnw.info.</span>
<span class="co">#&gt; 21 59.160.142.17.in-addr.arpa. 12 3025 skyvines.info.</span>
<span class="co">#&gt; 22 59.160.142.17.in-addr.arpa. 12 3025 shopdifferent.info.</span>
<span class="co">#&gt; 23 59.160.142.17.in-addr.arpa. 12 3025 sherlock.info.</span>
<span class="co">#&gt; 24 59.160.142.17.in-addr.arpa. 12 3025 quicktimetv.info.</span>
<span class="co">#&gt; 25 59.160.142.17.in-addr.arpa. 12 3025 quicktimelive.info.</span>
<span class="co">#&gt; 26 59.160.142.17.in-addr.arpa. 12 3025 powermac.info.</span>
<span class="co">#&gt; 27 59.160.142.17.in-addr.arpa. 12 3025 powerbook.info.</span>
<span class="co">#&gt; 28 59.160.142.17.in-addr.arpa. 12 3025 macosx.info.</span>
<span class="co">#&gt; 29 59.160.142.17.in-addr.arpa. 12 3025 appleshare.info.</span>
<span class="co">#&gt; 30 59.160.142.17.in-addr.arpa. 12 3025 applescript.info.</span>
<span class="co">#&gt; 31 59.160.142.17.in-addr.arpa. 12 3025 applepaysupplies.info.</span>
<span class="co">#&gt; 32 59.160.142.17.in-addr.arpa. 12 3025 applepaymerchantsupplies.info.</span>
<span class="co">#&gt; 33 59.160.142.17.in-addr.arpa. 12 3025 applepay.info.</span>
<span class="co">#&gt; 34 59.160.142.17.in-addr.arpa. 12 3025 applemasters.info.</span>
<span class="co">#&gt; 35 59.160.142.17.in-addr.arpa. 12 3025 appleexpo.info.</span>
<span class="co">#&gt; 36 59.160.142.17.in-addr.arpa. 12 3025 applecomputerinc.info.</span>
<span class="co">#&gt; 37 59.160.142.17.in-addr.arpa. 12 3025 applecentre.info.</span>
<span class="co">#&gt; 38 59.160.142.17.in-addr.arpa. 12 3025 airtunes.info.</span>
<span class="co">#&gt; 39 59.160.142.17.in-addr.arpa. 12 3025 apple.by.</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $Additional</span>
<span class="co">#&gt; list()</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; $edns_client_subnet</span>
<span class="co">#&gt; [1] "0.0.0.0/0"</span>
hosts &lt;-<span class="st"> </span><span class="kw">c</span>(<span class="st">"rud.is"</span>, <span class="st">"dds.ec"</span>, <span class="st">"r-project.org"</span>, <span class="st">"rstudio.com"</span>, <span class="st">"apple.com"</span>)
gdns::<span class="kw"><a href="reference/bulk_query.html">bulk_query</a></span>(hosts)
<span class="co">#&gt; name type TTL data</span>
<span class="co">#&gt; 1 rud.is. 1 3598 104.236.112.222</span>
<span class="co">#&gt; 2 dds.ec. 1 299 162.243.111.4</span>
<span class="co">#&gt; 3 r-project.org. 1 3072 137.208.57.37</span>
<span class="co">#&gt; 4 rstudio.com. 1 3599 45.79.156.36</span>
<span class="co">#&gt; 5 apple.com. 1 3415 17.172.224.47</span>
<span class="co">#&gt; 6 apple.com. 1 3415 17.178.96.59</span>
<span class="co">#&gt; 7 apple.com. 1 3415 17.142.160.59</span></code></pre></div>
<h3 id="test-results">Test Results</h3>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(gdns)
<span class="kw">library</span>(testthat)
<span class="kw">date</span>()
<span class="co">#&gt; [1] "Thu Sep 29 09:44:11 2016"</span>
<span class="kw">test_dir</span>(<span class="st">"tests/"</span>)
<span class="co">#&gt; testthat results ========================================================================================================</span>
<span class="co">#&gt; OK: 2 SKIPPED: 0 FAILED: 0</span>
<span class="co">#&gt; </span>
<span class="co">#&gt; DONE ===================================================================================================================</span></code></pre></div>
<h3 id="code-of-conduct">Code of Conduct</h3>
<p>Please note that this project is released with a <a href="CONDUCT.md">Contributor Code of Conduct</a>. By participating in this project you agree to abide by its terms.</p>
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

97
docs/news/index.html

@ -0,0 +1,97 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>All news. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="row">
<div class="col-md-9">
<div id="gdns-0.2.0" class="section level1">
<h1>gdns 0.2.0</h1>
<ul><li>CRAN release</li>
<li>Added a <code>NEWS.md</code> file to track changes to the package.</li>
</ul></div>
</div>
<div class="col-md-3 hidden-xs">
<div id="tocnav">
<h2>Contents</h2>
<ul class="nav nav-pills nav-stacked">
<li><a href="#gdns-0.2.0">0.2.0</a></li>
</ul>
</div>
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

59
docs/pkgdown.css

@ -0,0 +1,59 @@
body {
position: relative;
}
.icon img {
float: right;
border: 1px solid #ccc;
}
.index .internal {display: none;}
ul.index li {margin-bottom: 0.5em; clear: both;}
footer {
margin-top: 45px;
padding: 35px 0 36px;
border-top: 1px solid #e5e5e5;
}
footer p {
margin-bottom: 0;
color: #555;
}
/* Fixes for fixed navbar --------------------------*/
body {
position: relative;
padding-top: 60px;
}
.section h1, .section h2, .section h3, .section h4 {
padding-top: 60px;
margin-top: -60px;
}
/* Table of contents --------------------------*/
#tocnav h2 {
margin-top: 0;
font-size: 1.5em;
}
/* Syntax highlighting ---------------------------------------------------- */
.fl,.number {color:rgb(21,20,181);}
.fu,.functioncall {color:#264D66 ;}
.ch,.st,.string {color:#375D81 ;}
.kw,.keyword {font-weight:bolder ;color:black;}
.argument {color:#264D66 ;}
.co,.comment {color: #333;}
.formalargs {color: #264D66;}
.eqformalargs {color:#264D66;}
.slot {font-style:italic;}
.symbol {color:black ;}
.prompt {color:black ;}
pre img {
background-color: #fff;
display: block;
}

13
docs/pkgdown.js

@ -0,0 +1,13 @@
$(function() {
$('#tocnav').affix({
offset: {
top: $('#tocnav').offset().top - 80
}
});
$('body').scrollspy({
target: '#tocnav',
offset: 80
});
});

145
docs/reference/bulk_query.html

@ -0,0 +1,145 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>bulk_query. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Vectorized query, returning only answers in a data frame</h1>
</div>
<div class="row">
<div class="col-md-9">
<p>Vectorized query, returning only answers in a data frame</p>
<pre><span class='fu'>bulk_query</span>(<span class='no'>entities</span>, <span class='kw'>type</span> <span class='kw'>=</span> <span class='fl'>1</span>, <span class='kw'>edns_client_subnet</span> <span class='kw'>=</span> <span class='st'>"0.0.0.0/0"</span>)</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>entities</dt>
<dd>character vector of entities to query</dd>
<dt>type</dt>
<dd>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 <a href = 'here'>http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4</a>.</dd>
<dt>edns_client_subnet</dt>
<dd>The edns0-client-subnet option. Format is an IP
address with a subnet mask. Examples: <code>1.2.3.4/24</code>,
<code>2001:700:300::/48</code>.
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</code>. 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</code> is the default.</dd>
</dl>
<div class="Value">
<h2>Value</h2>
<p><code>data.frame</code> of only answers (use <code>query()</code> for detailed responses)</p>
</div>
<div class="Note">
<h2>Note</h2>
<p>this is a fairly naive function. It expects <code>Answer</code> 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.</p>
</div>
<div class="References">
<h2>References</h2>
<p><a href = 'https://developers.google.com/speed/public-dns/docs/dns-over-https'>https://developers.google.com/speed/public-dns/docs/dns-over-https</a></p>
</div>
<h2 id="examples">Examples</h2>
<pre class="examples"><div class='input'><span class='no'>hosts</span> <span class='kw'>&lt;-</span> <span class='fu'>c</span>(<span class='st'>"rud.is"</span>, <span class='st'>"dds.ec"</span>, <span class='st'>"r-project.org"</span>, <span class='st'>"rstudio.com"</span>, <span class='st'>"apple.com"</span>)
<span class='kw'>gdns</span><span class='kw'>::</span><span class='fu'>bulk_query</span>(<span class='no'>hosts</span>)</div><div class='output co'>#&gt; name type TTL data
#&gt; 1 rud.is. 1 3599 104.236.112.222
#&gt; 2 dds.ec. 1 299 162.243.111.4
#&gt; 3 r-project.org. 1 7199 137.208.57.37
#&gt; 4 rstudio.com. 1 3599 45.79.156.36
#&gt; 5 apple.com. 1 1006 17.172.224.47
#&gt; 6 apple.com. 1 1006 17.178.96.59
#&gt; 7 apple.com. 1 1006 17.142.160.59
#&gt; </div></pre>
</div>
<div class="col-md-3">
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

111
docs/reference/gdns.html

@ -0,0 +1,111 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>gdns. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Tools to Work with Google DNS Over HTTPS API</h1>
</div>
<div class="row">
<div class="col-md-9">
<p>Traditional DNS queries and responses are sent over UDP or TCP without
encryption. This is vulnerable to eavesdropping and spoofing (including
DNS-based Internet filtering). Responses from recursive resolvers to clients
are the most vulnerable to undesired or malicious changes, while
communications between recursive resolvers and authoritative nameservers
often incorporate additional protection.</p>
<p>To address this problem, Google Public DNS offers DNS resolution over an
encrypted HTTPS connection. DNS-over-HTTPS greatly enhances privacy and
security between a client and a recursive resolver, and complements DNSSEC
to provide end-to-end authenticated DNS lookups.</p>
<p>Support for reverse lookups is also provided.</p>
<p>See <a href = 'https://developers.google.com/speed/public-dns/docs/dns-over-https'>https://developers.google.com/speed/public-dns/docs/dns-over-https</a>
for more information.</p>
</div>
<div class="col-md-3">
<h2>Author</h2>
Bob Rudis (bob@rud.is)
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

99
docs/reference/has_spf.html

@ -0,0 +1,99 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>has_spf. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Test for whether a DNS TXT record is an SPF record</h1>
</div>
<div class="row">
<div class="col-md-9">
<p>Test for whether a DNS TXT record is an SPF record</p>
<pre><span class='fu'>has_spf</span>(<span class='no'>spf_rec</span>)</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>spf_rec</dt>
<dd>a character vector of DNS TXT records</dd>
</dl>
</div>
<div class="col-md-3">
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

107
docs/reference/index.html

@ -0,0 +1,107 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Function reference. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Function reference <small>version&nbsp;0.2.0</small></h1>
</div>
<div class="row">
<div class="col-md-9">
<div class="section ">
<h2>All functions</h2>
<p class="section-desc"></p>
<dl class="dl-horizontal">
<dt><a href="bulk_query.html">bulk_query</a></dt>
<dd>Vectorized query, returning only answers in a data frame</dd>
<dt><a href="gdns.html">gdns</a></dt><dt><a href="gdns.html">gdns-package</a></dt>
<dd>Tools to Work with Google DNS Over HTTPS API</dd>
<dt><a href="has_spf.html">has_spf</a></dt>
<dd>Test for whether a DNS TXT record is an SPF record</dd>
<dt><a href="is_soft_fail.html">is_hard_fail</a></dt><dt><a href="is_soft_fail.html">is_soft_fail</a></dt><dt><a href="is_soft_fail.html">passes_all</a></dt>
<dd>SPF &quot;all&quot; type test</dd>
<dt><a href="query.html">query</a></dt>
<dd>Perform DNS over HTTPS queries using Google</dd>
<dt><a href="spf_ipv4s.html">spf_exists</a></dt><dt><a href="spf_ipv4s.html">spf_includes</a></dt><dt><a href="spf_ipv4s.html">spf_ipv4s</a></dt><dt><a href="spf_ipv4s.html">spf_ipv6s</a></dt><dt><a href="spf_ipv4s.html">spf_ptrs</a></dt>
<dd>SPF field extraction functions</dd>
<dt><a href="split_spf.html">split_spf</a></dt>
<dd>Split out all SPF records in a domain's TXT record</dd>
</dl>
</div>
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

103
docs/reference/is_soft_fail.html

@ -0,0 +1,103 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>is_soft_fail. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>SPF &quot;all&quot; type test</h1>
</div>
<div class="row">
<div class="col-md-9">
<p>SPF &quot;all&quot; type test</p>
<pre><span class='fu'>is_soft_fail</span>(<span class='no'>spf_rec</span>)
<span class='fu'>is_hard_fail</span>(<span class='no'>spf_rec</span>)
<span class='fu'>passes_all</span>(<span class='no'>spf_rec</span>)</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>spf_rec</dt>
<dd>a character vector of DNS TXT records</dd>
</dl>
</div>
<div class="col-md-3">
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

430
docs/reference/query.html

@ -0,0 +1,430 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>query. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Perform DNS over HTTPS queries using Google</h1>
</div>
<div class="row">
<div class="col-md-9">
<p>Traditional DNS queries and responses are sent over UDP or TCP without
encryption. This is vulnerable to eavesdropping and spoofing (including
DNS-based Internet filtering). Responses from recursive resolvers to clients
are the most vulnerable to undesired or malicious changes, while
communications between recursive resolvers and authoritative nameservers
often incorporate additional protection.</p>
<p>To address this problem, Google Public DNS offers DNS resolution over an
encrypted HTTPS connection. DNS-over-HTTPS greatly enhances privacy and
security between a client and a recursive resolver, and complements DNSSEC
to provide end-to-end authenticated DNS lookups.</p>
<pre><span class='fu'>query</span>(<span class='no'>name</span>, <span class='kw'>type</span> <span class='kw'>=</span> <span class='st'>"1"</span>, <span class='kw'>edns_client_subnet</span> <span class='kw'>=</span> <span class='st'>"0.0.0.0/0"</span>)</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>name</dt>
<dd>item to lookup. Valid characters are numbers, letters, hyphen, and dot. Length
must be between 1 and 255. Names with escaped or non-ASCII characters
are not supported. Internationalized domain names must use the
punycode format (e.g. &quot;<code>xn--qxam</code>&quot;).
If an IPv4 string is input, it will be transformed into
a proper format for reverse lookups.</dd>
<dt>type</dt>
<dd>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 <a href = 'here'>http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4</a>.
You can use <code>255</code> for an <code>ANY</code> query.</dd>
<dt>edns_client_subnet</dt>
<dd>The edns0-client-subnet option. Format is an IP
address with a subnet mask. Examples: <code>1.2.3.4/24</code>,
<code>2001:700:300::/48</code>.
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</code>. 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</code> is the default.</dd>
</dl>
<div class="Value">
<h2>Value</h2>
<p>a <code>list</code> with the query result or <code>NULL</code> if an error occurred</p>
</div>
<div class="Details">
<h2>Details</h2>
<p>To perform vectorized queries with only answers (and no metadata) use
<code>bulk_query()</code>).</p>
</div>
<div class="References">
<h2>References</h2>
<p><a href = 'https://developers.google.com/speed/public-dns/docs/dns-over-https'>https://developers.google.com/speed/public-dns/docs/dns-over-https</a></p>
</div>
<h2 id="examples">Examples</h2>
<pre class="examples"><div class='input'><span class='fu'>query</span>(<span class='st'>"rud.is"</span>)</div><div class='output co'>#&gt; $Status
#&gt; [1] 0
#&gt;
#&gt; $TC
#&gt; [1] FALSE
#&gt;
#&gt; $RD
#&gt; [1] TRUE
#&gt;
#&gt; $RA
#&gt; [1] TRUE
#&gt;
#&gt; $AD
#&gt; [1] FALSE
#&gt;
#&gt; $CD
#&gt; [1] FALSE
#&gt;
#&gt; $Question
#&gt; name type
#&gt; 1 rud.is. 1
#&gt;
#&gt; $Answer
#&gt; name type TTL data
#&gt; 1 rud.is. 1 3599 104.236.112.222
#&gt;
#&gt; $Additional
#&gt; list()
#&gt;
#&gt; $edns_client_subnet
#&gt; [1] &quot;0.0.0.0/0&quot;
#&gt;
#&gt; $Comment
#&gt; [1] &quot;Response from dns.mwebdns.eu.(84.246.125.230)&quot;
#&gt;
#&gt; </div><div class='input'><span class='fu'>query</span>(<span class='st'>"example.com"</span>, <span class='st'>"255"</span>) <span class='co'># ANY query</span></div><div class='output co'>#&gt; $Status
#&gt; [1] 0
#&gt;
#&gt; $TC
#&gt; [1] FALSE
#&gt;
#&gt; $RD
#&gt; [1] TRUE
#&gt;
#&gt; $RA
#&gt; [1] TRUE
#&gt;
#&gt; $AD
#&gt; [1] TRUE
#&gt;
#&gt; $CD
#&gt; [1] FALSE
#&gt;
#&gt; $Question
#&gt; name type
#&gt; 1 example.com. 255
#&gt;
#&gt; $Answer
#&gt; name type TTL
#&gt; 1 example.com. 6 3599
#&gt; 2 example.com. 46 21599
#&gt; 3 example.com. 46 21599
#&gt; 4 example.com. 46 3599
#&gt; 5 example.com. 46 59
#&gt; 6 example.com. 46 21599
#&gt; 7 example.com. 46 3599
#&gt; 8 example.com. 46 3599
#&gt; 9 example.com. 46 3599
#&gt; 10 example.com. 47 3599
#&gt; 11 example.com. 2 21599
#&gt; 12 example.com. 2 21599
#&gt; 13 example.com. 28 21599
#&gt; 14 example.com. 1 21599
#&gt; 15 example.com. 16 59
#&gt; 16 example.com. 16 59
#&gt; 17 example.com. 48 3599
#&gt; 18 example.com. 48 3599
#&gt; 19 example.com. 48 3599
#&gt; data
#&gt; 1 sns.dns.icann.org. noc.dns.icann.org. 2015082669 7200 3600 1209600 3600
#&gt; 2 a 8 2 86400 1477364031 1475579385 1704 example.com. auGIKxU2oVxE9YE2ca9Xv5yuA2bP8uwIXW3t/d/wxGn6gnzuyVPefMHu5jT0z2ldwsqiB0+VGZpVguUeY7M22PCR0YwMGjB64/VQjsZQxAhaleVOLCRR2fya4EtOYvPRoWielQfDaS+4SBenCv0+nN8Gb3PMSsEe0ICjDSrzFRC0V7U=
#&gt; 3 ns 8 2 86400 1477484364 1475701785 1704 example.com. bY3Q/b0KCwv+fkMGpKABu3oT3y+u2xcCoykkPDJrkVGRM16Z4WojbemTYFR++pbsbuVHptz6uUtX3m94kbyvmaLvXTxy1bwY0b8F/0Rz9Se9jy5mIUiatTHftqlz434PC+UnQKNiWZBYsgQJegTJZJLlJ7/KaiIzjrhltRFWwqsOaUA=
#&gt; 4 soa 8 2 3600 1477543924 1475701785 1704 example.com. kWe1dnPv94cNlWhysZSKC3WC4/YlSTkG6/NZtFxxQcwPGlS7x+z4tRnNodhfLCpYw8D4loan0ybfWuRK/tzKminJsdt3lLqJxlXvcIzmEkI17xKUpcnD1jA0mhCfTptzLj4oCw4hhkC/d8JuD5jVmTskoiav36SV+cW1KngAY/UtPfw=
#&gt; 5 txt 8 2 60 1477325190 1475536185 1704 example.com. ZaMZnuA5mh+GSbmL3nJxDbVZEdAu0BC1I71FgOPojAgRT5i2pn4+obRCd+aUw3c/grt1xzciBdhyw9jMvzcyEwcxk2WDS+REkEwzBn1YKodoo1YCjcXVUZscugSXc+hq+eFaTcRlW/siqWq+cy77VVsjdKJTAJrcK12abkjOnRrqfww=
#&gt; 6 aaaa 8 2 86400 1477264070 1475449785 1704 example.com. M0ggDOmzYveQUd145aePLv19PwzYed7bDNsU74quoitB1nEZ8/r7ROdsT1m7VXi/BBimUVtezXBeVTc3/+2rEvhNsmX1WRrHN7seHzAiEt27TNogwn3e40YGCrwVIy+ypLRfZTi+Xlv/Ykd0H4Uvp0tW+69eel8MOlYRqSO5DMizMTc=
#&gt; 7 nsec 8 2 3600 1476958241 1475176185 1704 example.com. WnXb1Y/Qkn5CmiRir6a0KssPjiPbEq7Tko0rWsQQyFFPrT+JB/6YUKStJY5K+GN+M2tWGW3jrOSbTVei0GLxjE/3BBLoYtLqLURjEk3Ki3n5zP5c9FMyQPf3fCC0ac/kSxw5V3nTs3eSnu8p/quseV8BqkU/hYgm1qsvQOyXVUSFync=
#&gt; 8 dnskey 8 2 3600 1476561735 1474722585 31406 example.com. Oup7snCR/5iUmTuGyHfCfFCisTeqaJ8RHD6aE9wZQR2CCkKZHXO9dzfUL1gA6T35p4T0XeM+TMlv1uZhX157RnanPwyZluancmm5cNz5ub0vG7G/O4DxnSoLmATYoBJ7Ub9Ul4iWFUE7nvyJ23X2MhX6XTiplXYPnztiem6rJLV84JiemoKtvapWchRhFi4w4Y+BdjHfY7IRERjQYNhVuaus5+EeppIoot9srsj2suXePGC7dE0R8z9K/BTYvQi76kBlJzzF9fNNy5JvyZPEUpXATuRD7KfxBsWHaFajOnYOb1eDAL/C0H3hhjVBov2Pexp7YDIsJzIa2g8850LruQ==
#&gt; 9 dnskey 8 2 3600 1476561735 1474722585 45620 example.com. f+aO6V+QKA4XgTC0Vqow59jBP/NlX6f7EEbaoXts0lp7Vaj/DBrhnS/sT4BbJb3VK1MvuPmNre5t0eyOeNCjbjrwIM2uf41GFuBI0AFxQx7o2PIdf1vrXsDnUGsZrMkYMv4gr802S7MXsvMdMN5cM0AA5Zol888sLP1yrHIcfNxG8hoUn3dS0L6nd/OxkL70+NjHBTjBQLqkLsK92ryJ0CWrzcJElszBRqfQfYGV/sJ84Ko4tjnBqRuki/rmTW5KQYdE7NI+MvERtGnep7RHb02Luk7BFPPD3uh353EYSAOVHrMH4fte6mJGcj3vxErfSWakRUXQpovLNcqYZNxoGQ==
#&gt; 10 www.example.com. A NS SOA TXT AAAA RRSIG NSEC DNSKEY
#&gt; 11 a.iana-servers.net.
#&gt; 12 b.iana-servers.net.
#&gt; 13 2606:2800:220:1:248:1893:25c8:1946
#&gt; 14 93.184.216.34
#&gt; 15 &quot;v=spf1 -all&quot;
#&gt; 16 &quot;$Id: example.com 4415 2015-08-24 20:12:23Z davids $&quot;
#&gt; 17 256 3 8 AwEAAa3d68DfyIs03nGYpi3a9YX+f/wln3g6dhWWzjUUqp6CGXuaOdEHfS8zI/5JdGKi8Xoc4YmjPGfiCJIkCiQnMKn/QFygpZs41ANLdPp2jJlJhFA6IHE/xxTCxJfNhsdEAOGlMORN9Zu1XLUBo/IuCDUvUzZPgalivd/m9L+Jr4kxbg3v
#&gt; 18 257 3 8 AwEAAZ0aqu1rJ6orJynrRfNpPmayJZoAx9Ic2/Rl9VQWLMHyjxxem3VUSoNUIFXERQbj0A9Ogp0zDM9YIccKLRd6LmWiDCt7UJQxVdD+heb5Ec4qlqGmyX9MDabkvX2NvMwsUecbYBq8oXeTT9LRmCUt9KUt/WOi6DKECxoG/bWTykrXyBR8elD+SQY43OAVjlWrVltHxgp4/rhBCvRbmdflunaPIgu27eE2U4myDSLT8a4A0rB5uHG4PkOa9dIRs9y00M2mWf4lyPee7vi5few2dbayHXmieGcaAHrx76NGAABeY393xjlmDNcUkF1gpNWUla4fWZbbaYQzA93mLdrng+M=
#&gt; 19 257 3 8 AwEAAbOFAxl+Lkt0UMglZizKEC1AxUu8zlj65KYatR5wBWMrh18TYzK/ig6Y1t5YTWCO68bynorpNu9fqNFALX7bVl9/gybA0v0EhF+dgXmoUfRX7ksMGgBvtfa2/Y9a3klXNLqkTszIQ4PEMVCjtryl19Be9/PkFeC9ITjgMRQsQhmB39eyMYnal+f3bUxKk4fq7cuEU0dbRpue4H/N6jPucXWOwiMAkTJhghqgy+o9FfIp+tR/emKao94/wpVXDcPf5B18j7xz2SvTTxiuqCzCMtsxnikZHcoh1j4g+Y1B8zIMIvrEM+pZGhh/Yuf4RwCBgaYCi9hpiMWVvS4WBzx0/lU=
#&gt;
#&gt; $Additional
#&gt; list()
#&gt;
#&gt; $edns_client_subnet
#&gt; [1] &quot;0.0.0.0/0&quot;
#&gt;
#&gt; $Comment
#&gt; [1] &quot;Response from 199.43.135.53&quot;
#&gt;
#&gt; </div><div class='input'><span class='fu'>query</span>(<span class='st'>"microsoft.com"</span>, <span class='st'>"MX"</span>)</div><div class='output co'>#&gt; $Status
#&gt; [1] 0
#&gt;
#&gt; $TC
#&gt; [1] FALSE
#&gt;
#&gt; $RD
#&gt; [1] TRUE
#&gt;
#&gt; $RA
#&gt; [1] TRUE
#&gt;
#&gt; $AD
#&gt; [1] FALSE
#&gt;
#&gt; $CD
#&gt; [1] FALSE
#&gt;
#&gt; $Question
#&gt; name type
#&gt; 1 microsoft.com. 15
#&gt;
#&gt; $Answer
#&gt; name type TTL data
#&gt; 1 microsoft.com. 15 74 10 microsoft-com.mail.protection.outlook.com.
#&gt;
#&gt; $Additional
#&gt; list()
#&gt;
#&gt; $edns_client_subnet
#&gt; [1] &quot;0.0.0.0/0&quot;
#&gt;
#&gt; </div><div class='input'><span class='fu'>query</span>(<span class='st'>"google-public-dns-a.google.com"</span>, <span class='st'>"TXT"</span>)</div><div class='output co'>#&gt; $Status
#&gt; [1] 0
#&gt;
#&gt; $TC
#&gt; [1] FALSE
#&gt;
#&gt; $RD
#&gt; [1] TRUE
#&gt;
#&gt; $RA
#&gt; [1] TRUE
#&gt;
#&gt; $AD
#&gt; [1] FALSE
#&gt;
#&gt; $CD
#&gt; [1] FALSE
#&gt;
#&gt; $Question
#&gt; name type
#&gt; 1 google-public-dns-a.google.com. 16
#&gt;
#&gt; $Answer
#&gt; name type TTL data
#&gt; 1 google-public-dns-a.google.com. 16 21599 &quot;http://xkcd.com/1361/&quot;
#&gt;
#&gt; $Additional
#&gt; list()
#&gt;
#&gt; $edns_client_subnet
#&gt; [1] &quot;0.0.0.0/0&quot;
#&gt;
#&gt; $Comment
#&gt; [1] &quot;Response from 216.239.38.10&quot;
#&gt;
#&gt; </div><div class='input'><span class='fu'>query</span>(<span class='st'>"apple.com"</span>)</div><div class='output co'>#&gt; $Status
#&gt; [1] 0
#&gt;
#&gt; $TC
#&gt; [1] FALSE
#&gt;
#&gt; $RD
#&gt; [1] TRUE
#&gt;
#&gt; $RA
#&gt; [1] TRUE
#&gt;
#&gt; $AD
#&gt; [1] FALSE
#&gt;
#&gt; $CD
#&gt; [1] FALSE
#&gt;
#&gt; $Question
#&gt; name type
#&gt; 1 apple.com. 1
#&gt;
#&gt; $Answer
#&gt; name type TTL data
#&gt; 1 apple.com. 1 1002 17.172.224.47
#&gt; 2 apple.com. 1 1002 17.178.96.59
#&gt; 3 apple.com. 1 1002 17.142.160.59
#&gt;
#&gt; $Additional
#&gt; list()
#&gt;
#&gt; $edns_client_subnet
#&gt; [1] &quot;0.0.0.0/0&quot;
#&gt;
#&gt; </div><div class='input'><span class='fu'>query</span>(<span class='st'>"17.142.160.59"</span>, <span class='st'>"PTR"</span>)</div><div class='output co'>#&gt; $Status
#&gt; [1] 0
#&gt;
#&gt; $TC
#&gt; [1] FALSE
#&gt;
#&gt; $RD
#&gt; [1] TRUE
#&gt;
#&gt; $RA
#&gt; [1] TRUE
#&gt;
#&gt; $AD
#&gt; [1] FALSE
#&gt;
#&gt; $CD
#&gt; [1] FALSE
#&gt;
#&gt; $Question
#&gt; name type
#&gt; 1 59.160.142.17.in-addr.arpa. 12
#&gt;
#&gt; $Answer
#&gt; name type TTL data
#&gt; 1 59.160.142.17.in-addr.arpa. 12 2587 icloud.se.
#&gt; 2 59.160.142.17.in-addr.arpa. 12 2587 icloud.es.
#&gt; 3 59.160.142.17.in-addr.arpa. 12 2587 icloud.om.
#&gt; 4 59.160.142.17.in-addr.arpa. 12 2587 icloudo.com.
#&gt; 5 59.160.142.17.in-addr.arpa. 12 2587 icloud.ch.
#&gt; 6 59.160.142.17.in-addr.arpa. 12 2587 icloud.fr.
#&gt; 7 59.160.142.17.in-addr.arpa. 12 2587 icloude.com.
#&gt; 8 59.160.142.17.in-addr.arpa. 12 2587 camelspaceeffect.com.
#&gt; 9 59.160.142.17.in-addr.arpa. 12 2587 camelphat.com.
#&gt; 10 59.160.142.17.in-addr.arpa. 12 2587 alchemysynth.com.
#&gt; 11 59.160.142.17.in-addr.arpa. 12 2587 openni.org.
#&gt; 12 59.160.142.17.in-addr.arpa. 12 2587 swell.am.
#&gt; 13 59.160.142.17.in-addr.arpa. 12 2587 appleweb.net.
#&gt; 14 59.160.142.17.in-addr.arpa. 12 2587 apple.com.
#&gt; 15 59.160.142.17.in-addr.arpa. 12 2587 pv-apple-com.apple.com.
#&gt; 16 59.160.142.17.in-addr.arpa. 12 2587 ripmixburn.com.
#&gt; 17 59.160.142.17.in-addr.arpa. 12 2587 yessql.info.
#&gt; 18 59.160.142.17.in-addr.arpa. 12 2587 webobjects.info.
#&gt; 19 59.160.142.17.in-addr.arpa. 12 2587 ubnw.info.
#&gt; 20 59.160.142.17.in-addr.arpa. 12 2587 skyvines.info.
#&gt; 21 59.160.142.17.in-addr.arpa. 12 2587 shopdifferent.info.
#&gt; 22 59.160.142.17.in-addr.arpa. 12 2587 sherlock.info.
#&gt; 23 59.160.142.17.in-addr.arpa. 12 2587 quicktimetv.info.
#&gt; 24 59.160.142.17.in-addr.arpa. 12 2587 quicktimelive.info.
#&gt; 25 59.160.142.17.in-addr.arpa. 12 2587 powermac.info.
#&gt; 26 59.160.142.17.in-addr.arpa. 12 2587 powerbook.info.
#&gt; 27 59.160.142.17.in-addr.arpa. 12 2587 macosx.info.
#&gt; 28 59.160.142.17.in-addr.arpa. 12 2587 appleshare.info.
#&gt; 29 59.160.142.17.in-addr.arpa. 12 2587 applescript.info.
#&gt; 30 59.160.142.17.in-addr.arpa. 12 2587 applepaysupplies.info.
#&gt; 31 59.160.142.17.in-addr.arpa. 12 2587 applepaymerchantsupplies.info.
#&gt; 32 59.160.142.17.in-addr.arpa. 12 2587 applepay.info.
#&gt; 33 59.160.142.17.in-addr.arpa. 12 2587 applemasters.info.
#&gt; 34 59.160.142.17.in-addr.arpa. 12 2587 appleexpo.info.
#&gt; 35 59.160.142.17.in-addr.arpa. 12 2587 applecomputerinc.info.
#&gt; 36 59.160.142.17.in-addr.arpa. 12 2587 applecentre.info.
#&gt; 37 59.160.142.17.in-addr.arpa. 12 2587 airtunes.info.
#&gt; 38 59.160.142.17.in-addr.arpa. 12 2587 apple.by.
#&gt; 39 59.160.142.17.in-addr.arpa. 12 2587 apples-msk.ru.
#&gt;
#&gt; $Additional
#&gt; list()
#&gt;
#&gt; $edns_client_subnet
#&gt; [1] &quot;0.0.0.0/0&quot;
#&gt;
#&gt; </div></pre>
</div>
<div class="col-md-3">
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

107
docs/reference/spf_ipv4s.html

@ -0,0 +1,107 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>spf_ipv4s. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>SPF field extraction functions</h1>
</div>
<div class="row">
<div class="col-md-9">
<p>Various helper functions to extract SPF record components.</p>
<pre><span class='fu'>spf_ipv4s</span>(<span class='no'>spf_rec</span>)
<span class='fu'>spf_ipv6s</span>(<span class='no'>spf_rec</span>)
<span class='fu'>spf_includes</span>(<span class='no'>spf_rec</span>)
<span class='fu'>spf_ptrs</span>(<span class='no'>spf_rec</span>)
<span class='fu'>spf_exists</span>(<span class='no'>spf_rec</span>)</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>spf_rec</dt>
<dd>a character vector of DNS TXT records</dd>
</dl>
</div>
<div class="col-md-3">
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>

102
docs/reference/split_spf.html

@ -0,0 +1,102 @@
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>split_spf. gdns</title>
<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha384-nrOSfDHtoPMzJHjVTdCopGqIqeYETSXhZDFyniQ8ZHcVy08QesyHcnOUpMpqnmWq" crossorigin="anonymous"></script>
<!-- Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<!-- Font Awesome icons -->
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-T8Gy5hrqNKT+hzMclPo118YTQO6cYprQmhrYwIiQ/3axmI1hQomh7Ud2hPOy8SP1" crossorigin="anonymous">
<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>
<!-- mathjax -->
<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">gdns</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">Home</a>
</li>
<li>
<a href="../reference/index.html">Reference</a>
</li>
<li>
<a href="../news/index.html">News</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
</header>
<div class="page-header">
<h1>Split out all SPF records in a domain&#39;s TXT record</h1>
</div>
<div class="row">
<div class="col-md-9">
<p>Given a vector of TXT records, this function will return a list of vectors
of all the SPF records for each. If the given TXT record is not an SPF
record, <code>NULL</code> is returned (which makes it easy to skip with <code>purrr</code>
functions).</p>
<pre><span class='fu'>split_spf</span>(<span class='no'>spf_rec</span>)</pre>
<h2>Arguments</h2>
<dl class="dl-horizontal">
<dt>spf_rec</dt>
<dd>a character vector of DNS TXT records</dd>
</dl>
</div>
<div class="col-md-3">
</div>
</div>
<footer>
<p>Built by <a href="http://hadley.github.io/pkgdown/">pkgdown</a>. Styled with <a href="http://getbootstrap.com">Bootstrap 3</a>.</p>
</footer>
</div>
</body>
</html>
Loading…
Cancel
Save