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 hashes)
Built Distribution
Close
Hashes for slimDNS-1.0.0rc2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 330a34f886506b15584d6c556dd30e272e21989088139f3c5d261f6a37c4df00 |
|
MD5 | fc0c0a61a9df8c65258a82a3a83038c1 |
|
BLAKE2b-256 | bb3b8c8709e368c0dac8bdcb81061e0f2c1bf3c7715166681ac4ee8ab38272d0 |