dns-lookup 2.0.4

A simple dns resolving api, much like rust's unstable api. Also includes getaddrinfo and getnameinfo wrappers for libc variants.
# dns-lookup

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.

PS: If you only need a single result, consider
[ToSocketAddrs](https://doc.rust-lang.org/std/net/trait.ToSocketAddrs.html) in libstd.

The library also includes a safe wrapper for `getaddrinfo` and `getnameinfo`.


## Usage

### Simple API

use dns_lookup::{lookup_host, lookup_addr};

  let hostname = "localhost";
  let ips: Vec<std::net::IpAddr> = lookup_host(hostname).unwrap();

  let ip: std::net::IpAddr = "".parse().unwrap();
  let host = lookup_addr(&ip).unwrap();

  // The string "localhost" on unix, and the hostname on Windows.

### libc API
  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))

    for socket in sockets {
      // Try connecting to socket
      println!("{:?}", socket);

  use dns_lookup::getnameinfo;
  use std::net::{IpAddr, SocketAddr};

  let ip: IpAddr = "".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);

  use dns_lookup::gethostname;

  let hostname = gethostname().unwrap();