This ip package will help you retrieve info for a given ip and subnet. Currently only supports ipv4. This package is written in vanilla cfml and requires no depencies
I dont know about licenses, do whatever you want.
Just drop into your modules folder or use the box-cli to install
box install ip
The module registers the following mapping in WireBox: ip@ip. Which is the class you will use to parse ip addresses and subnets. Currently this class supports one method, with two signatures.
v4( ipAddress, subnetmask )- Parse ip address with a given subnet maskv4( cidrString )- Parse cidr signature.
E.g.
//wirebox style var ip = getInstance('ip@ip'); //vanilla style var ip = new my.lib.ip.models.ip();This returned value is an object which you can use to retrieve information for the given subetnet.
Below is example along with all the methods available to you:
// instation: var ip = getInstance('ip@ip'); // you can disable loading all available addresses to speed up performance for large subnets, by default this is true ip.setLoadRange(false); ip.setLoadRange(true); //load subnet var subnet = ip.v4('192.168.0.1/24'); // or ip.v4('192.168.0.1','255.255.255.0') // available getters subnet.getAddress() // 192.168.0.1 subnet.getNumHosts() // 254 subnet.getPrefixLength() // 24 subnet.getBroadcastAddress() // 192.168.0.255 subnet.getNetworkAddress() // 192.168.0.0 subnet.getSubnetMask() // 255.255.255.0 subnet.getCidrSignature() // 192.168.0.1/24 subnet.getFirstAddress() // 192.168.0.1 subnet.getLastAddress() // 192.168.0.254 subnet.getBinary() // 11000000101010000000000000000001 subnet.getIpDecimal() // 3232235521 subnet.getNetworkDecimal() // 3232235520 subnet.getBroadcastDecimal() // 3232235775 subnet.getAddressses() // A struct containing all available addresses // utility functions var isInRange = subnet.isInRange('192.168.0.4'); //true var isInRange = subnet.isInRange('192.168.2.9'); //false // can return a struct with all the above information of the subnet var memento = subnet.toMemento(); /* memento = { "address": "192.168.0.1", "numHosts": 254, "prefixLength": 24, "broadcastAddress": "192.168.0.255", "networkAddress": "192.168.0.0", "subnetMask": "255.255.255.0", "cidrSignature": "192.168.0.1/24", "firstAddress": "192.168.0.1", "lastAddress": "192.168.0.254", "binary": "11000000101010000000000000000001", "ipDecimal": 3232235521, "networkDecimal": 3232235520, "broadcastDecimal": 3232235775, "ipAddresses": [ "192.168.0.0", "192.168.0.1", "192.168.0.2", ... "192.168.0.254", "192.168.0.255" ] } */