NBping is a Ping tool developed in Rust. It supports concurrent Ping for multiple addresses, visual chart display, real-time data updates, and other features.
📢 NBPing (formerly Nping)
Important
Renaming Notice
This project has been officially renamed from Nping to NBPing.
Please update your bookmarks, dependencies, and installation scripts accordingly. The old name is now deprecated and will no longer be maintained.
nbping --helpExporter Mode
Now NBping supports exporting ping metrics to Prometheus format, so you can visualize them with tools like Grafana.
nbping exporter www.baidu.com www.google.com -i 1 -p 9100Then, you can scrape the metrics from http://localhost:9100/metrics
You can use Grafana to visualize the data:
brew install nbping
nbping --help- TCP Ping support
- IP range Ping support
- Optimize UI interface, add more dynamic effects.
nbping www.baidu.com www.google.com www.apple.com www.sina.com -c 20 -i 2
nbping --help
🏎 NBping mean NB Ping, A Ping Tool in Rust with Real-Time Data and Visualizations
Usage: nbping [OPTIONS] <TARGET>...
Arguments:
<TARGET>... target IP address or hostname to ping
Options:
--config <CONFIG> Path to a YAML config file (CLI flags override its values)
-c, --count <COUNT> Number of pings to send [default: 0 = unlimited]
-i, --interval <INTERVAL> Interval in seconds between pings [default: 0]
-6, --force_ipv6 Force using IPv6 (config-only field can also enable this)
-m, --multiple <MULTIPLE> Specify the maximum number of target addresses, Only works on one target address [default: 0]
-v, --view-type <VIEW_TYPE> Initial view mode: graph/table/point/sparkline (switch at runtime with 1-4 / Tab) [default: graph]
-o, --output <OUTPUT> Output file to save ping results
-h, --help Print help
-V, --version Print version
nbping exporter www.baidu.com www.google.com -i 1 -p 9100
./nbping exporter --help
Exporter mode for monitoring
Usage: nbping exporter [OPTIONS] [TARGET]...
Arguments:
[TARGET]... target IP addresses or hostnames to ping
Options:
--config <CONFIG> Path to a YAML config file (CLI flags override its values)
-i, --interval <INTERVAL> Interval in seconds between pings [default: 1]
-p, --port <PORT> Prometheus metrics HTTP port [default: 9090]
-6, --force_ipv6 Force using IPv6 (config-only field can also enable this)
-h, --help Print helpInstead of passing everything on the command line, you can start NBping from a
YAML file with --config:
nbping --config nbping.yamlThe file mirrors the command-line flags. See nbping.example.yaml:
mode: tui # tui | exporter (default: tui)
targets:
- google.com
- github.com
- apple.com
- baidu.com
- 1.1.1.1
count: 0 # 0 = unlimited
interval: 1 # seconds
force_ipv6: false
multiple: 0 # tui mode only
view_type: graph # graph | table | point | sparkline (tui mode only)
# output: results.log # tui mode only
port: 9090 # exporter mode onlyNotes:
- Precedence: command-line flags override the config file, which overrides
built-in defaults (
CLI flag > YAML config > default). For example,nbping --config nbping.yaml -i 1forces a 1-second interval regardless of the file. - Mode: the
modefield selects TUI or exporter mode when no subcommand is given. Running the explicitnbping exporter ...subcommand always uses exporter mode. force_ipv6: the-6flag can only turn IPv6 on; to disable IPv6 while a config enables it, setforce_ipv6: falsein the file.- Unknown keys are rejected, so typos surface as errors at startup.
Thanks to these people for their feedback and suggestions for 🏎NBping!
| ThatFlower | zx4i | snail2sky | shenshouer | vnt-dev | qingyuan0o0 | Onlywzr
Thanks to these self-media for reposting and paying attention to 🏎NBping!
| 阮一峰的网络日志 |Rust 中文社区 | 公众号:奇妙的linux世界 | 公众号:IT运维技术圈 | X:@geekbb | 公众号:一飞开源 | 公众号: 开源日记


