Skip to main content

A simple DNS server written in vanilla Python.

Project description

slimDNS

A simple DNS server written in vanilla Python.

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


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)

Uploaded Source

Built Distribution

slimDNS-1.0.0rc2-py3-none-any.whl (2.3 kB view details)

Uploaded Python 3

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

Hashes for slimDNS-1.0.0rc2.tar.gz
Algorithm Hash digest
SHA256 950ff83af10aa1c3274ff99332f20f236f9c0874dcf07027b15077ab28ac59c9
MD5 53d8269777adf3d06e517472c1391c0e
BLAKE2b-256 76edbe9246bed8164ef7d995ab982cb73084d64e06e2408e8a516954ce385710

See more details on using hashes here.

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

Hashes for slimDNS-1.0.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 330a34f886506b15584d6c556dd30e272e21989088139f3c5d261f6a37c4df00
MD5 fc0c0a61a9df8c65258a82a3a83038c1
BLAKE2b-256 bb3b8c8709e368c0dac8bdcb81061e0f2c1bf3c7715166681ac4ee8ab38272d0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page