Pure MoonBit IPv4/IPv6 addresses, networks, interfaces and address sets
moon add tc-adventureking/ipset@0.3.0import { "tc-adventureking/ipset" @ip, }test "interface and subnet" {
let iface = @ip.ip_interface("192.168.10.7/24")
assert_eq(iface.ip().to_string(), "192.168.10.7")
assert_eq(iface.network().to_string(), "192.168.10.0/24")
let first = iface.network().subnets(new_prefix=26).next().unwrap()
assert_eq(first.hosts().next().unwrap().to_string(), "192.168.10.1")
assert_false(@ip.ip_address("100.64.0.1").is_global())
}moon -C examples/consumer run . --target wasm-gc
moon test --deny-warn --target allnode bin/ipset.mjs normalize examples/policies/new.txt
node bin/ipset.mjs diff examples/policies/old.txt examples/policies/new.txt --jsonpub(all) suberror IpError {
InvalidAddress(String)
InvalidPrefix(String)
InvalidRange(String)
HostBitsSet(String)
} derive(Eq)pub(all) enum IpInput {
AddressInput(IpAddress)
InterfaceInput(IpInterface)
NetworkInput(IpNetwork)
} derive(Eq)impl Compare for IpInterfaceimpl Hash for IpInterfaceimpl Show for IpInterfaceimpl Debug for IpInterfacefn IpInterface::from_bigint(value : BigInt, prefix? : Int, family? : Family) -> IpInterface raise IpErrorInstall
Download zipPure MoonBit IPv4/IPv6 addresses, networks, interfaces and address sets