https://github.com/cle-b/hookdns
An easy way to customize the dns resolution in your Python scripts.
https://github.com/cle-b/hookdns
dns python
Last synced: about 2 months ago
JSON representation
An easy way to customize the dns resolution in your Python scripts.
- Host: GitHub
- URL: https://github.com/cle-b/hookdns
- Owner: cle-b
- License: apache-2.0
- Created: 2018-12-28T16:04:03.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-01-12T16:53:11.000Z (5 months ago)
- Last Synced: 2025-03-22T09:07:15.858Z (2 months ago)
- Topics: dns, python
- Language: Python
- Homepage:
- Size: 53.7 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/cle-b/hookdns/actions/workflows/build.yml) [](https://coveralls.io/github/cle-b/hookdns?branch=main) [](https://pypi.org/project/hookdns/)
# hookdns
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.
```python
import requestsfrom 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
...
```## Installation
```
pip install hookdns
```## Usage
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
```python
import requestsfrom 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
```python
import requestsfrom hookdns import hosts
with hosts({"example.org": "localhost"}):
...
r = requests.get("http://example.org") # the request is sent to your local server
...
```