#local #free #networking #ipv4 #remote #port #ipv6

port_check

Get a free local port or check if a port somewhere is reachable

8 releases

0.2.1 Apr 1, 2024
0.2.0 Mar 22, 2024
0.1.5 Jan 16, 2020
0.1.3 Dec 28, 2019
0.1.0 Mar 21, 2019

#190 in Network programming

Download history 4069/week @ 2024-12-02 5182/week @ 2024-12-09 5118/week @ 2024-12-16 2318/week @ 2024-12-23 3312/week @ 2024-12-30 5139/week @ 2025-01-06 4768/week @ 2025-01-13 5579/week @ 2025-01-20 7154/week @ 2025-01-27 7874/week @ 2025-02-03 7540/week @ 2025-02-10 6108/week @ 2025-02-17 6109/week @ 2025-02-24 6699/week @ 2025-03-03 6128/week @ 2025-03-10 7495/week @ 2025-03-17

26,749 downloads per month
Used in 16 crates (13 directly)

MIT license

21KB
390 lines

port_check

crates.io Build Status codecov

A simple rust library to get a free local port or to check if a port somewhere is reachable

Example:

use port_check::*;
use std::time::Duration;

// --------------------------------------------------------------------
// If not specified, all port checks are performed for IPv4 addresses.
// --------------------------------------------------------------------

// get a free local port
let free_port = free_local_port().unwrap();

// get a free local port between 10000 and 15000
let free_port_in_range = free_local_port_in_range(10000..=15000);

// check whether a remote port is reachable
let is_reachable = is_port_reachable("192.0.2.0:8080");
// or
let is_reachable = is_port_reachable_with_timeout("192.0.2.0:8080", Duration::from_millis(10_000));



// --------------------------------------------------------------------
// IPv6 checks are supported too
// --------------------------------------------------------------------

let free_ipv6_port = free_local_ipv6_port().unwrap();

let is_ipv6_port_free = is_local_port_free(Port::ipv6(free_ipv6_port));
// or
let is_ipv6_port_free = is_local_ipv6_port_free(free_ipv6_port);

No runtime deps