hostbyname/
hostbyname.rs

1extern crate netdb;
2
3use std::env;
4use netdb::hosts::get_host_by_name;
5
6fn main() {
7    let mut args = env::args();
8    let cmd = args.next().unwrap();
9    let name = match args.next() {
10        None => {
11            println!("Usage: {} <hostname>", cmd);
12            return;
13        }
14        Some(name) => name
15    };
16
17    match get_host_by_name(&name) {
18        Ok(Some(ent)) => {
19            println!("{}", ent.name());
20            if !ent.aliases().is_empty() {
21                println!("  Aliases:");
22                for name in ent.aliases() {
23                    println!("     {}", name);
24                }
25            }
26            println!("  Addresses:");
27            for addr in ent.addrs() {
28                println!("     {}", addr);
29            }
30        }
31        Ok(None) => println!("Not found."),
32        Err(err) => println!("Error: {:?}", err),
33    }
34}