IP addresses management

Using the view

The addresses view provides access to all the addresses registered in the DB, as well as methods to create and remove them:

eth0 = ndb.interfaces['eth0']

# create an address
(ndb
 .addresses
 .create(address='10.0.0.1', prefixlen=24, index=eth0['index'])
 .commit())

# remove it
(ndb
 .addresses['10.0.0.1/24']
 .remove()
 .commit())

# list addresses
(ndb
 .addresses
 .summary())  # see also other view dump methods

Using interfaces

One can use interface objects to inspect addresses as well:

(ndb
 .interfaces['eth0']
 .ipaddr
 .summary())  # see also other view dump methods

Or to manage them:

(ndb
 .interfaces['eth0']
 .add_ip('10.0.0.1/24')    # add a new IP address
 .del_ip('172.16.0.1/24')  # remove an existing address
 .set('state', 'up')
 .commit())

Accessing one address details

Access an address as a separate RTNL object:

print(ndb.addresses['10.0.0.1/24'])

Please notice that address objects are read-only, you may not change them, only remove old ones, and create new.