Elektra  0.9.5
Plugin: hosts

The /etc/hosts file is a simple text file that associates IP addresses with hostnames, one line per IP address. The format is described in hosts(5).

The hosts plugins transforms the information of this file to the following structure. The keys directly below ipv4 or ipv6 are host names of IPv4 or IPv6 addresses, respectively. The keys directly below these keys are aliases. The IP addresses themselves are stored as values.

Canonical hostnames are stored as key base names with their IP addresses as value.

Aliases are stored as keys directly below canonical hostnames with a read-only duplicate of the associated IP address as value.

Comments are stored according to the comment metadata specification (see /doc/METADATA.ini for more information).

The ordering of the hosts is stored in metakeys of type order. The value is an ascending number. Ordering of aliases is not preserved.

Mount the plugin:

sudo kdb mount --with-recommends /etc/hosts system:/hosts hosts

Print out all known hosts and their aliases:

kdb ls system:/hosts

Get IP address of ipv4 host "localhost":

kdb get system:/hosts/ipv4/localhost

Check if a comment is belonging to host "localhost":

kdb meta-ls system:/hosts/ipv4/localhost

Try to change the host "localhost", should fail because it is not an IPv4 address:

sudo kdb set system:/hosts/ipv4/localhost ::1

```

Backup-and-Restore:/tests/hosts

sudo kdb mount –with-recommends hosts /tests/hosts hosts

Create hosts file for testing

echo '127.0.0.1 localhost' > kdb file /tests/hosts echo '::1 localhost' >> kdb file /tests/hosts

Check the file

cat kdb file /tests/hosts #> 127.0.0.1 localhost #> ::1 localhost

Check if the values are read correctly

kdb get /tests/hosts/ipv4/localhost #> 127.0.0.1 kdb get /tests/hosts/ipv6/localhost #> ::1

Should both fail with error 04200 and return 5

kdb set /tests/hosts/ipv4/localhost ::1

RET:5

ERROR:C03200

kdb set /tests/hosts/ipv6/localhost 127.0.0.1

RET:5

ERROR:C03200

cleanup

kdb rm -r /tests/hosts sudo kdb umount /tests/hosts ```

Limitations