python_hosts.hosts module

This module contains classes: HostsEntry: A representation of a hosts file entry, i.e. a line containing an IP address and name(s), a comment, or a blank line/line separator.

Hosts: A representation of a hosts file, e.g. /etc/hosts and c:\windows\system32\drivers\etc\hosts for a linux or MS windows based machine respectively. Each entry being represented as an instance of the HostsEntry class.

class python_hosts.hosts.Hosts(path=None, entries=None)[source]

Bases: object

A hosts file.

add(entries=None, force=False, allow_address_duplication=False, merge_names=False)[source]

Add instances of HostsEntry to the instance of Hosts. :param entries: A list of instances of HostsEntry :param force: Remove matching before adding :param allow_address_duplication: Allow using multiple entries

for same address
Parameters:merge_names – Merge names where address already exists
Returns:The counts of successes and failures
count()[source]

Get a count of the number of host entries :return: The number of host entries

static determine_hosts_path(platform=None)[source]

Return the hosts file path based on the supplied or detected platform. :param platform: a string used to identify the platform :return: detected filesystem path of the hosts file

entries
exists(address=None, names=None, comment=None)[source]
Determine if the supplied address and/or names, or comment, exists in
a HostsEntry within Hosts
Parameters:
  • address – An ipv4 or ipv6 address to search for
  • names – A list of names to search for
  • comment – A comment to search for
Returns:

True if a supplied address, name, or comment is found. Otherwise, False.

find_all_matching(address=None, name=None, comment=None)[source]
Return all HostsEntry instances from the Hosts object
where the supplied ip address or name matches
Parameters:
  • address – An ipv4 or ipv6 address
  • name – A host name
  • comment – A host inline comment
Returns:

HostEntry instances

static get_hosts_by_url(url=None)[source]

Request the content of a URL and return the response :param url: The URL of the hosts file to download :return: The content of the passed URL

import_file(import_file_path=None)[source]

Read a list of host entries from a file, convert them into instances of HostsEntry and then append to the list of entries in Hosts :param import_file_path: The path to the file containing the host entries :return: Counts reflecting the attempted additions

import_url(url=None, force=None)[source]
Read a list of host entries from a URL, convert them into instances
of HostsEntry and then append to the list of entries in Hosts
Parameters:url – The URL of where to download a hosts file
Returns:Counts reflecting the attempted additions
path
populate_entries()[source]
Called by the initialiser of Hosts. This reads the entries from the
local hosts file, converts them into instances of HostsEntry and adds them to the Hosts list of entries.
Returns:None
remove_all_matching(address=None, name=None, comment=None)[source]

Remove all HostsEntry instances from the Hosts object where the supplied ip address, name or comment matches :param address: An ipv4 or ipv6 address :param name: A host name :param comment: A host inline comment :return: None

write(path=None, mode='w')[source]

Write all of the HostsEntry instances back to the hosts file :param path: override the write path :return: Dictionary containing counts

class python_hosts.hosts.HostsEntry(entry_type=None, address=None, comment=None, names=None)[source]

Bases: object

An entry in a hosts file.

address
comment
entry_type
static get_entry_type(hosts_entry=None)[source]

Return the type of entry for the line of hosts file passed :param hosts_entry: A line from the hosts file :return: ‘comment’ | ‘blank’ | ‘ipv4’ | ‘ipv6’

is_real_entry()[source]
names
static str_to_hostentry(entry)[source]

Transform a line from a hosts file into an instance of HostsEntry :param entry: A line from the hosts file :return: An instance of HostsEntry