[][src]Crate tokio_ping

tokio-ping is an asynchronous ICMP pinging library.

The repository is located at https://github.com/knsd/tokio-ping/.

Usage example

Note, sending and receiving ICMP packets requires privileges.

extern crate futures;
extern crate tokio;

extern crate tokio_ping;

use futures::{Future, Stream};

fn main() {
    let addr = std::env::args().nth(1).unwrap().parse().unwrap();

    let pinger = tokio_ping::Pinger::new();
    let stream = pinger.and_then(move |pinger| Ok(pinger.chain(addr).stream()));
    let future = stream.and_then(|stream| {
        stream.take(3).for_each(|mb_time| {
            match mb_time {
                Some(time) => println!("time={:?}", time),
                None => println!("timeout"),
            }
            Ok(())
        })
    });

    tokio::run(future.map_err(|err| {
        eprintln!("Error: {}", err)
    }))
}

Structs

Error
PingChain

Ping the same host several times.

PingChainStream

Stream of sequential ping response times, iterates None if timed out.

PingFuture

Represent a future that resolves into ping response time, resolves into None if timed out.

Pinger

ICMP packets sender and receiver.