A simple DNS server written in vanilla Python.
Project description
slimDNS
A simple DNS server written in vanilla Python.
- slimDNS documentation
- slimDNS discord server
- slimDNS supports A, NS, SOA and SRV records (as of v1.0.0rc2).
Installation
pip install slimDNS
or simply git clone
this repository.
Minimal example
import slimDNS
dns = slimDNS.server(slimDNS.UDP)
dns.run()
This would host a DNS server without any records.
There's two ways you can add records:
Swap out all records via annotation
@dns.records
def records(server):
return {
"example.com" : {
"A" : {"target" : "264.30.198.2", "ttl" : 60},
"SOA" : {"target" : "example.com", "ttl" : 60},
"NS" : {"target" : "example.com", "ttl" : 60, "priority" : 10}
},
"nas.example.com" : {
"A" : {"target" : "264.30.198.2", "type" : "A", "ttl" : 60}
},
"_matrix._tcp.riot.example.com" : {
"SRV" : {"ttl" : 60, "priority" : 10, "port" : 8448, "target" : "nas.example.com"}
}
}
Which would swap out all current records for the defined set of records.
Add, delete and update records
dns.remove('example.com', 'A')
dns.add('example.com', 'A', '264.30.198.1')
dns.update('example.com', 'A', '264.30.198.5')
Which would remove the A
record example.com
,
Then add a new similar one with a new UP and
finally update that new record with a new IP
.
Note
Requires Python 3.8+ & Linux (not tested on other platforms).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
slimDNS-1.0.0rc2.tar.gz
(2.4 kB
view details)
Built Distribution
File details
Details for the file slimDNS-1.0.0rc2.tar.gz
.
File metadata
- Download URL: slimDNS-1.0.0rc2.tar.gz
- Upload date:
- Size: 2.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 950ff83af10aa1c3274ff99332f20f236f9c0874dcf07027b15077ab28ac59c9 |
|
MD5 | 53d8269777adf3d06e517472c1391c0e |
|
BLAKE2b-256 | 76edbe9246bed8164ef7d995ab982cb73084d64e06e2408e8a516954ce385710 |
File details
Details for the file slimDNS-1.0.0rc2-py3-none-any.whl
.
File metadata
- Download URL: slimDNS-1.0.0rc2-py3-none-any.whl
- Upload date:
- Size: 2.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 330a34f886506b15584d6c556dd30e272e21989088139f3c5d261f6a37c4df00 |
|
MD5 | fc0c0a61a9df8c65258a82a3a83038c1 |
|
BLAKE2b-256 | bb3b8c8709e368c0dac8bdcb81061e0f2c1bf3c7715166681ac4ee8ab38272d0 |