tracert 0.11.0

Cross-platform library for traceroute and ping
Documentation
[crates-badge]: https://img.shields.io/crates/v/tracert.svg
[crates-url]: https://crates.io/crates/tracert
[license-badge]: https://img.shields.io/crates/l/tracert.svg
[tracert-url]: https://github.com/shellrow/tracert

# tracert [![Crates.io][crates-badge]][crates-url] ![License][license-badge]
Cross-platform library for traceroute and ping. Written in Rust.
tokio-based asynchronous probing is supported for all features.

## Features
- traceroute
    - [x] IPv4 ICMP
    - [x] IPv6 ICMP
    - [x] IPv4 UDP
    - [x] IPv6 UDP
- ping
    - [x] IPv4 ICMPv4
    - [x] IPv6 ICMPv6
    - [x] IPv4 UDP
    - [x] IPv6 UDP
    - [x] IPv4 TCP
    - [x] IPv6 TCP

## Usage
Add `tracert` to your dependencies
```
[dependencies]
tracert = "0.11"
```

## Examples
- `examples/icmp_ping.rs`
- `examples/icmp_trace.rs`
- `examples/tcp_ping.rs`
- `examples/udp_ping.rs`
- `examples/udp_trace.rs`
- `examples/parallel_trace.rs`

## 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 may require the ability to create raw sockets depending on the operating system.

- Linux: root privileges or CAP_NET_RAW capability are typically required.
- macOS / Windows: Administrator privileges are usually not required for standard traceroute operations.

If you encounter permission errors, try running with elevated privileges.