netstat

Latest version Documentation License

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.

Usage

Add this to your Cargo.toml:

toml [dependencies] netstat = "0.6"

Example program:

```rust extern crate netstat;

use netstat::*;

fn main() { let afflags = AddressFamilyFlags::IPV4 | AddressFamilyFlags::IPV6; let protoflags = ProtocolFlags::TCP | ProtocolFlags::UDP; let socketsinfo = getsocketsinfo(afflags, protoflags).unwrap(); for si in socketsinfo { match si.protocolsocketinfo { ProtocolSocketInfo::Tcp(tcpsi) => println!( "TCP {}:{} -> {}:{} {:?} - {}", tcpsi.localaddr, tcpsi.localport, tcpsi.remoteaddr, tcpsi.remoteport, si.associatedpids, tcpsi.state ), ProtocolSocketInfo::Udp(udpsi) => println!( "UDP {}:{} -> : {:?}", udpsi.localaddr, udpsi.localport, si.associated_pids ), } } } ```

Details