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:
Parser
Read the
/etc/hosts
file and parse it into a dictionary of host name lists, keyed on IP address.- property all_ips¶
The set of ip addresses known.
- Type:
(set)
- property all_names¶
The set of host names known, regardless of their IP address.
- Type:
(set)
- property 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.
- property 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)