#networking #udp #tcp #ping

tracert

Cross-platform library for traceroute and ping

13 releases (breaking)

0.9.0 Apr 27, 2025
0.8.0 May 19, 2024
0.7.0 Aug 17, 2023
0.5.2 Jul 16, 2023
0.3.1 May 7, 2022

#1658 in Network programming

Download history 6/week @ 2025-01-29 106/week @ 2025-02-05 171/week @ 2025-02-12 21/week @ 2025-02-19 46/week @ 2025-02-26 34/week @ 2025-03-05 111/week @ 2025-03-12 58/week @ 2025-03-19 23/week @ 2025-03-26 10/week @ 2025-04-02 24/week @ 2025-04-09 19/week @ 2025-04-16 140/week @ 2025-04-23 37/week @ 2025-04-30 39/week @ 2025-05-07 48/week @ 2025-05-14

271 downloads per month

MIT license

85KB
2K SLoC

tracert Crates.io License

Cross-platform library for traceroute and ping. Written in Rust.

Features

  • traceroute
    • IPv4 UDP
    • IPv6 UDP
  • ping
    • IPv4 ICMPv4
    • IPv6 ICMPv6
    • IPv4 UDP
    • IPv6 UDP
    • IPv4 TCP
    • IPv6 TCP

Usage

Add tracert to your dependencies

[dependencies]
tracert = "0.9"

Note for Windows users

You may need to set up firewall rules that allow ICMP Time-to-live Exceeded and ICMP Destination (Port) Unreachable packets to be received.

netsh example

netsh advfirewall firewall add rule name="All ICMP v4" dir=in action=allow protocol=icmpv4:any,any
netsh advfirewall firewall add rule name="All ICMP v6" dir=in action=allow protocol=icmpv6:any,any

Additional Notes

This library requires the ability to create raw sockets. Execute with administrator privileges.

Dependencies

~3–13MB
~148K SLoC