Skip to main content

Coming soon

Project description

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.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ip-pool-0.1.0.dev0.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file ip-pool-0.1.0.dev0.tar.gz.

File metadata

  • Download URL: ip-pool-0.1.0.dev0.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for ip-pool-0.1.0.dev0.tar.gz
Algorithm Hash digest
SHA256 f7e0f36a578892ccff60597e9b095eab8d4de60ad1a1a2f5d365b76aab3b8cfa
MD5 f46a00895a875948f3f35e0fd05d6970
BLAKE2b-256 af71315201e22447d6c7ab2527a801041dfe219cd8af09c75c19f9c61ff27687

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page