Show HN: Hookdns (for Python devs)- Because /etc./hosts is not always an option

11 hours ago 1

Build Coverage Status PyPI version

HookDNS is a library which allow you to modify a name resolution in your Python script without any modification in your hosts file or by using a fake DNS resolver.

import requests from hookdns import hosts with hosts({"example.org": "127.0.0.1"}): ... r = requests.get("http://example.org") # the request is sent to your local server ...

Custom DNS resolutions are describe by a dictionnary where the keys are hostnames and the values the expected corresponding addresses.

{ "hostname1": "addr1", "hostname2": "addr2" }

hostname and addr could be a domain name or a string representation of an IPv4/IPV6.

Example using the patch as a decorator

import requests from hookdns import hosts @hosts({"example.org": "127.0.0.1"}) def myfunc(): ... r = requests.get("http://example.org") # the request is sent to your local server ...

Example using the patch as a context manager

import requests from hookdns import hosts with hosts({"example.org": "localhost"}): ... r = requests.get("http://example.org") # the request is sent to your local server ...
Read Entire Article