A simple DNS server written in vanilla Python.
Project description
slimDNS
A simple DNS server written in vanilla Python.
- slimHTTP documentation
- slimHTTP discord server
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.0rc1.tar.gz
(2.4 kB
view hashes)
Built Distribution
Close
Hashes for slimDNS-1.0.0rc1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4735ea01b495a7c299452157dce9fd8f12953a6172315e3d0225a235691f6ebe |
|
MD5 | b30dad2a1042fd9d121c3329824d1b2e |
|
BLAKE2b-256 | a046d649d098ff264adb4002ac2c0328536b5f8d8ad5e9e36760ea66c7f34a43 |