[][src]Crate winping

winping - Easy ICMP Echo for Windows, and no elevated rights required!

Super basic ping.exe example

use std::net::IpAddr;
use winping::{Buffer, Pinger};

fn main() {
    let dst = std::env::args()
        .nth(1)
        .unwrap_or(String::from("127.0.0.1"))
        .parse::<IpAddr>()
        .expect("Could not parse IP Address");

    let pinger = Pinger::new().unwrap();
    let mut buffer = Buffer::new();
     
    for _ in 0..4 {
        match pinger.send(dst, &mut buffer) {
            Ok(rtt) => println!("Response time {} ms.", rtt),
            Err(err) => println!("{}.", err),
        }
    }
}

Structs

AsyncPinger

A pinger that does not block when sending.

AsyncResult

The result of an async ping. Contains a Result, and the buffer that was originally passed into the pinger.

Buffer

A buffer for request and reply data.

PingFuture

The immediate return value of an AsyncPinger. You should probably just use async/await syntax instead.

Pinger

A pinger that blocks when sending.

Enums

CreateError

An error when creating a Pinger.

Error

An error when sending a ping request.

IpPair

A pair of IP (v4 or v6) addresses, source and destination.