2 个版本
0.1.1 | 2024年6月12日 |
---|---|
0.1.0 | 2024年3月17日 |
#2102 在 网络编程
28KB
630 行
ping-async
这个 crate 可以在 Windows 和 macOS 上异步发送无特权 ICMP 回显请求并接收回显响应。在 Linux 上,它需要 net.ipv4.ping_group_range
sysctl
参数以允许无特权用户创建 ICMP 套接字。
在 Windows 上,它使用 IcmpSendEcho2Ex
和 Icmp6SendEcho2
win32 API。在 macOS 和 Linux 上,它使用 tokio
的帮助来使用 ICMP 套接字。由于后者的异步性质,时间精度可能会受到系统负载的影响。
示例
$ cargo run --example ping 1.1.1.1
Reply from 1.1.1.1: status = Success, time = 8.133ms
Reply from 1.1.1.1: status = Success, time = 8.92ms
Reply from 1.1.1.1: status = Success, time = 10.653ms
Reply from 1.1.1.1: status = Success, time = 8.456ms
$ cargo run --example ping 2606:4700:4700::1111
Reply from 2606:4700:4700::1111: status = Success, time = 8.454ms
Reply from 2606:4700:4700::1111: status = Success, time = 9.307ms
Reply from 2606:4700:4700::1111: status = Success, time = 9.056ms
Reply from 2606:4700:4700::1111: status = Success, time = 9.408ms
依赖关系
~0.7–40MB
~600K SLoC