[−][src]Crate netstat2
Cross-platform library to retrieve network sockets information. Tries to be optimal by using low-level OS APIs instead of command line utilities. Provides unified interface and returns data structures which may have additional fields depending on platform.
Example
use netstat2::*; let af_flags = AddressFamilyFlags::IPV4 | AddressFamilyFlags::IPV6; let proto_flags = ProtocolFlags::TCP | ProtocolFlags::UDP; let sockets_info = get_sockets_info(af_flags, proto_flags)?; for si in sockets_info { match si.protocol_socket_info { ProtocolSocketInfo::Tcp(tcp_si) => println!( "TCP {}:{} -> {}:{} {:?} - {}", tcp_si.local_addr, tcp_si.local_port, tcp_si.remote_addr, tcp_si.remote_port, si.associated_pids, tcp_si.state ), ProtocolSocketInfo::Udp(udp_si) => println!( "UDP {}:{} -> *:* {:?}", udp_si.local_addr, udp_si.local_port, si.associated_pids ), } }
Modules
error |
Structs
AddressFamilyFlags | Set of address families. |
ProtocolFlags | Set of protocols. |
SocketInfo | General socket information. |
TcpSocketInfo | TCP-specific socket information. |
UdpSocketInfo | UDP-specific socket information. |
Enums
ProtocolSocketInfo | Protocol-specific socket information. |
TcpState | State of TCP connection. |
Functions
get_sockets_info | Retrieve sockets information as a vector. Short-circuits on any error along the way. |
iterate_sockets_info | Iterate through sockets information. |