IP Address Pool
Description
This is a tool to generate a list of IP addresses and track which ones are used. For example, tooling that generates VPN profiles can request a new address, and this will hand out the next available one and make a note of it. When an address is no longer required, it can be returned to the pool.
Currently only supports IPv4.
Installation
$ pip3 install [--user] ip-pool
Example Usage
Usage:
$ ip-pool --help
usage: ip-pool [-h] [--initialize CIDR_ADDRESS] [--new-address HOSTNAME] [--release-address HOSTNAME]
[--address-for HOSTNAME]
pool_db_json
positional arguments:
pool_db_json Path to IP pool database json file
optional arguments:
-h, --help show this help message and exit
--initialize CIDR_ADDRESS
Initialize IP pool with the provided CIDR address/netmask
--new-address HOSTNAME
Allocate next unused address to HOSTNAME
--release-address HOSTNAME
Release address for HOSTNAME and return it to the pool
--address-for HOSTNAME
Print address for HOSTNAME
The following will initialize a new IP address pool, but not allocate any addresses:
$ ip-pool ./pool.json --initialize "192.168.8.1/24"
$ cat pool.json
{
"ip_version": 4,
"network": "192.168.8.0/24",
"hostnames": {}
}
Request a new address for hostname (or other identifier) server_1:
$ ip-pool ./pool.json --new-address server_1
192.168.8.1/24
Return a new address for hostname server_1:
$ ip-pool ./pool.json --release-address server_1
Reassign an address from host_2 to host_3:
$ ip-pool ./pool.json --release-address host_2 --new-address host_3
192.168.8.2/24
Get the address for host_3:
$ ip-pool pool.json --address-for host_3
192.168.8.2/24
List all addresses and their identifiers in use:
$ ip-pool pool.json --list-used
host_1: 192.168.8.1/24
host_3: 192.168.8.2/24
Metadata
Release files for ip-pool 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ip-pool-0.1.0.tar.gz | 4.9 kB | Details |
Release files / ip-pool-0.1.0.tar.gz
| Download URL | ip-pool-0.1.0.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
16b9a1be1e6aeb9fa3f5d2098f3b194bda3521a43f7a9c6c049f309eccea877e
|
|
BLAKE2b-256 checksum How to use checksums |
967d1430e37a8f4f06aa8ce2f9232653edc1865f26e9ef002c9c06ff88837fed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.6.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.7
|