dnsoverhttps 0.1.0

Resolve hostnames by sending DNS queries over HTTPS
Documentation
# dnsoverhttps - D'oh!

[![crates.io](http://meritbadge.herokuapp.com/dnsoverhttps)](https://crates.io/crates/dnsoverhttps)

Resolve hostnames by sending DNS queries over HTTPS.
It uses `dns.google.com` to send the base64-encoded DNS query over HTTPS.

Based on <https://tools.ietf.org/html/draft-ietf-doh-dns-over-https-02>.

(A newer version of the draft is available, but the used server supports only version 2 for now)

## Drawbacks

* TLS Certificate is not checked.
  The connection is done using a static IPv4 address for the server.
  TLS Certificate validation had to be disabled, as there's currently no way to pass the right
  hostname into the request library.
* Uses a fixed IP for the `dns.google.com` server. This is not configurable at the moment.

## Example

```
let addr = dnsoverhttps::resolve_host("example.com");
```

## CLI Usage

`dnsoverhttps` comes with a small CLI utility providing `host` functionality to resolve hostnames:

```
$ host
example.com has address 2606:2800:220:1:248:1893:25c8:1946
example.com has address 93.184.216.34
```

To install:

```
cargo install dnsoverhttps
```

## License

MIT. See [LICENSE](LICENSE).