{"id":16724278,"url":"https://github.com/badboy/dnsoverhttps","last_synced_at":"2025-09-14T06:09:58.432Z","repository":{"id":57620430,"uuid":"120512246","full_name":"badboy/dnsoverhttps","owner":"badboy","description":"dnsoverhttps - D'oh!","archived":false,"fork":false,"pushed_at":"2018-09-20T22:12:16.000Z","size":38,"stargazers_count":14,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-24T02:01:14.558Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/badboy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-06T19:25:29.000Z","updated_at":"2023-02-12T01:45:30.000Z","dependencies_parsed_at":"2022-09-02T16:38:50.994Z","dependency_job_id":null,"html_url":"https://github.com/badboy/dnsoverhttps","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Fdnsoverhttps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Fdnsoverhttps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Fdnsoverhttps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Fdnsoverhttps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/badboy","download_url":"https://codeload.github.com/badboy/dnsoverhttps/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231515009,"owners_count":18388404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T22:44:37.646Z","updated_at":"2024-12-27T16:42:29.959Z","avatar_url":"https://github.com/badboy.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dnsoverhttps - D'oh!\n\n[![crates.io](http://meritbadge.herokuapp.com/dnsoverhttps)](https://crates.io/crates/dnsoverhttps)\n\nResolve hostnames by sending DNS queries over HTTPS.\nIt uses `https://1.1.1.1` as the DNS resolver by default, hosted by Cloudflare.\nAccording to Cloudflare it is a privacy-first consumer DNS service.\nSee \u003chttps://1.1.1.1\u003e for more information.\n\nBased on \u003chttps://tools.ietf.org/html/draft-ietf-doh-dns-over-https-07\u003e.\n\n## Drawbacks\n\n* When specifing a URL, the hostname has to be specified as well for use in HTTP.\n  The TLS Certificate received from the server is validated, but not checked for the correct hostname..\n* Only handles A and AAAA records for now (IPv4 \u0026 IPv6, this implicitely handles CNAMES when they are resolved recursively)\n\n## Example: Default resolver\n\n```rust\nlet addr = dnsoverhttps::resolve_host(\"example.com\");\n```\n\n## Example: Custom resolver\n\n```rust\nlet client = dnsoverhttps::Client::from_url_with_hostname(\"https://172.217.21.110/experimental\", \"dns.google.com\".to_string()).unwrap();\nlet addr = client.resolve_host(\"example.com\");\n```\n\n## CLI Usage\n\n`dnsoverhttps` comes with a small CLI utility providing `host` functionality to resolve hostnames:\n\n```\n$ host example.com\nexample.com has address 2606:2800:220:1:248:1893:25c8:1946\nexample.com has address 93.184.216.34\n```\n\nTo install:\n\n```\ncargo install dnsoverhttps\n```\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadboy%2Fdnsoverhttps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbadboy%2Fdnsoverhttps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadboy%2Fdnsoverhttps/lists"}