Template strings to extract the correct interface and IpAddr to bind to. Heavily inspired by https://github.com/hashicorp/go-sockaddr
eval(docs) takes an interface template string. The template is a string that starts with a producer and is followed by filters and sorts each of which is pipe | delimited. eval returns a vector of IpAddr objects that can then be used as bindings
use ift::eval; print!("{:?}", eval(r#"GetInterface "en0""#).unwrap());use actix_web::{ server, App, }; let mut s = server::new(|| { App::new() }); for ip in ift::eval("GetPrivateInterfaces").unwrap().into_iter() { s = s.bind((ip, 8080)).unwrap(); }- get private interfaces
GetAllInterfaces | FilterFlags "up" | FilterForwardable | SortBy "default" - get private interfaces short
GetPrivateInterfaces - get specific interface by name
GetInterface "en0" - get only interfaces with ipv6 addresses
GetAllInterfaces | FilterIPv6
There are examples in the examples folder.
- actix - bind multiple private interfaces
make genmake updateYou can use the cargo release command.
cargo release patchLicense: MIT