Hosts - file /etc/hosts
¶
This parser parses the /etc/hosts
file, strips the comments, ignores the
blank lines, and collects the host names by IP address. IPv4 and IPv6
addresses are supported.
Sample hosts file:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# The same IP address can appear more than once, with different names
127.0.0.1 fte.example.com
10.0.0.1 nonlocal.example.com nonlocal2.fte.example.com
10.0.0.2 other.host.example.com # Comments at end of line are ignored
Examples
>>> len(hosts.all_names)
10
>>> 'localhost6'in hosts.all_names
True
>>> hosts.data['127.0.0.1']
['localhost', 'localhost.localdomain', 'localhost4', 'localhost4.localdomain4', 'fte.example.com']
>>> sorted(hosts.get_nonlocal().keys())
['10.0.0.1', '10.0.0.2']
>>> hosts.lines[-1]['ip']
'10.0.0.2'
>>> hosts.lines[2]['names']
['fte.example.com']
-
class
insights.parsers.hosts.
Hosts
(context)[source]¶ Bases:
insights.core.Parser
Read the
/etc/hosts
file and parse it into a dictionary of host name lists, keyed on IP address.-
all_ips
¶ The set of ip addresses known.
Type: (set)
-
all_names
¶ The set of host names known, regardless of their IP address.
Type: (set)
-
data
¶ The parsed result as a dict with IP address as the key.
Type: (dict)
-
get_nonlocal
()[source]¶ A dictionary of host name lists, keyed on IP address, that are not the ‘localhost’ addresses ‘127.0.0.1’ or ‘::1’.
-
ip_of
(hostname)[source]¶ Return the (first) IP address given for this host name. None is returned if no IP address is found.
-
lines
¶ List of the parsed lines in the original order, in the following format:
{ 'ip': '127.0.0.1', 'names': ['localhost', 'localhost.localdomain', 'localhost4', 'localhost4.localdomain4'] 'raw_line:' '127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4' }
Type: (list)
-