mirror of
https://github.com/zaphar/icmp-socket.git
synced 2025-07-21 19:29:47 -04:00

rcv_from() would always overwrite the timeout parameter set by the user. Instead of setting the timeout within the socket when set_timeout() is called, store the timeout information within the options (along with hops) and read that data when the sockets timeout is actually set in rcv_from().
ICMP Sockets for both IPv4 and IPv6
An implementation of ICMP Sockets for both IPv4 and IPv6.
Sockets can be created from IP addresses. IPv4 addresses will construct ICMP4 sockets. IPv6 will construct ICMP6 sockets.
let parsed_addr = "127.0.0.1".parse::<Ipv4Addr>().unwrap();
let socket = IcmpSocket4::try_from(parsed_addr).unwrap();
It can construct and parse the common ICMP packets for both ICMP4 and ICMP6.
let packet4 = Icmpv4Packet::with_echo_request(42, 1, "payload".to_bytes());
let packet6 = Icmpv6Packet::with_echo_request(42, 1, "payload".to_bytes());
)
API Documentation
Description
Languages
Rust
100%