#icmp #ping #tokio

tokio-icmp-echo

异步 ICMP ping 库

2 个版本

0.4.1 2022年3月17日
0.4.0 2021年4月27日

#14#icmp

Download history 116/week @ 2024-04-12 144/week @ 2024-04-19 171/week @ 2024-04-26 110/week @ 2024-05-03 79/week @ 2024-05-10 105/week @ 2024-05-17 86/week @ 2024-05-24 118/week @ 2024-05-31 112/week @ 2024-06-07 153/week @ 2024-06-14 119/week @ 2024-06-21 36/week @ 2024-06-28 32/week @ 2024-07-05 57/week @ 2024-07-12 199/week @ 2024-07-19 47/week @ 2024-07-26

339 每月下载量
用于 peshming

MIT/Apache

28KB
692

tokio-icmp-echo

Latest Version docs

tokio-icmp-echo 是一个异步 ICMP ping 库。它最初由 Fedor Gogolev(别名 knsd)编写,并以 tokio-ping 的名称分发。这里是一个分支,主要包含维护工作,以确保它在当前异步 Rust 生态系统中的兼容性。

使用示例

注意,发送和接收 ICMP 数据包需要权限。

extern crate futures;
extern crate tokio;

extern crate tokio_icmp_echo;

use futures::{Future, Stream};

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

    let pinger = tokio_icmp_echo::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)
    }))
}

许可证

该项目受以下其中一种许可证的约束:

供您选择。

贡献

除非您明确声明,否则您有意提交以包含在作品中并由您提供的任何贡献将根据上述方式双重许可,不附加任何额外条款或条件。

依赖项

~4–16MB
~150K SLoC