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 gen
make update
You can use the cargo release command.
cargo release patch
License: MIT