A small wrapper for libc to perform simple DNS lookups.
You can use the lookup_host
function to get a list of IP Addresses for a
given hostname, and the lookup_name
function to get the reverse dns entry for
the given IP Address.
```rust use dnslookup::{lookuphost, lookup_addr};
{
let hostname = "localhost";
let ips: Vec
{ let ip: std::net::IpAddr = "127.0.0.1".parse().unwrap(); let host = lookup_addr(&ip).unwrap();
// The string "localhost" on unix, and the hostname on Windows. } ```
```rust { extern crate dns_lookup;
use dns_lookup::{getaddrinfo, AddrInfoHints, SockType};
fn main() {
let hostname = "localhost";
let service = "ssh";
let hints = AddrInfoHints {
socktype: SockType::Stream.into(),
.. AddrInfoHints::default()
};
let sockets =
getaddrinfo(Some(hostname), Some(service), Some(hints))
.unwrap().collect::
for socket in sockets {
// Try connecting to socket
println!("{:?}", socket);
}
} }
{ use dns_lookup::getnameinfo; use std::net::{IpAddr, SocketAddr};
let ip: IpAddr = "127.0.0.1".parse().unwrap(); let port = 22; let socket: SocketAddr = (ip, port).into();
let (name, service) = match getnameinfo(&socket, 0) { Ok((n, s)) => (n, s), Err(e) => panic!("Failed to lookup socket {:?}", e), };
println!("{:?} {:?}", name, service); let _ = (name, service); } ```