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