Expand description
DNS client for the Wiznet W5500 SPI internet offload chip.
§Warning
Please proceed with caution, and review the code before use in a production environment.
This code was developed for one-off hobby projects.
§Limitations
- No DNS caching.
- Only supports A queries.
- Only supports a single outstanding query.
- Only supports a single question in a query.
§Example
use w5500_dns::{hl::block, ll::Sn, servers, Client as DnsClient, Hostname, Response};
const DNS_SOCKET: Sn = Sn::Sn3;
const DNS_SRC_PORT: u16 = 45917;
let mut dns_client: DnsClient =
DnsClient::new(DNS_SOCKET, DNS_SRC_PORT, servers::CLOUDFLARE, random_number);
let hostname: Hostname = Hostname::new("docs.rs").expect("hostname is invalid");
let mut hostname_buffer: [u8; 16] = [0; 16];
let query_id: u16 = dns_client.a_question(&mut w5500, &hostname)?;
let mut response: Response<_> =
block!(dns_client.response(&mut w5500, &mut hostname_buffer, query_id))?;
while let Some(rr) = response.next_rr()? {
println!("name: {:?}", rr.name);
println!("TTL: {}", rr.ttl);
println!("IP: {:?}", rr.rdata);
}
response.done()?;
§Relevant Specifications
§Feature Flags
All features are disabled by default.
Re-exports§
Modules§
- MDNS client for the [Wiznet W5500] SPI internet offload chip.
- Commonly used public DNS servers.
Structs§
- W5500 DNS client.
- A validated hostname.
- DNS server resource records.
- DNS response from the server.
- Decoded fields from SRV rdata.
Enums§
- The class of a DNS query.
- DNS question query type.
- Decoded rdata.
- DNS response code.
Constants§
- DNS destination port.