Skip to main content

This is a tester for a DNS proxy filter. Used to locally or remotely test DNS proxy filters that use a certain format of configuration file. See disciption at GitHub page.

Project description

The Python package dnstester-qboxxbyh

This is a tester for a DNS proxy filter. It can be used locally or remotely to test DNS proxy filters that rely on a specific configuration file format below:

  [server]
  listen_address = 127.0.0.1
  listen_port = 5300
                    
  [upstream]
  dns1 = 1.1.1.1
  dns2 = 8.8.8.8
  dns3 = 8.8.4.4
                    
  [blacklist]
  yandex.ru = notfind
  ya.ru = refuse
  tutu.ru = 178.248.234.61

Installation

This package is available on PyPI and can be installed with pip install dnstester-qboxxbyh or updated with pip install --upgrade dnstester-qboxxbyh

How to use

If the DNS proxy filter being tested is a Python script (e.g., mydnsfilter.py):

from dnstester_qboxxbyh import dnsProxyTester
tester = dnsProxyTester(sample_size_input = 200)
tester.run(app_binary = "python3 mydnsfilter.py", sample_size_input = 200,
                        ignoreUnexpected = False, ignoreTrailing = False,
                        raiseOnTruncation = False, ignoreErrors = False,
                        timeOut = None) # None for timeOut means for ever

Or, if the DNS proxy filter being tested is a binary (which may also require its own parameters, such as a configuration file):

from dnstester_qboxxbyh import dnsProxyTester
tester = dnsProxyTester(sample_size_input = 200)
tester.run(app_binary =
  "~/dns-proxy-filter-p2B9agE1/dns_proxy_filter_p2B9agE1 ~/.config/p2B9agE1/dns-proxy-p2B9agE1.conf",
                        sample_size_input = 200, ignoreUnexpected = False, ignoreTrailing = False,
                        raiseOnTruncation = False, ignoreErrors = False,
                        timeOut = None) # None for timeOut means for ever

How it works

The software downloads and uses a collection of 4,170,262 verified domains from https://tranco-list.eu/download/VQ92N/full. It makes a random sample without replacement from this pool of domains and randomly splits it into four subsamples. Using three of those subsamples (one for domains not to be found, one for domains to be refused service, and one for domains with randomly pre-specified IPv4 and IPv6 addresses), the software creates a test configuration file and locally launches the tested DNS proxy filter.

The test results

The results are displayed and are dynamically updated in the terminal:

Example screenshot

Constraints

This version doesn't yet support:

  • Pre-specifying both IPv4 and IPv6 for the same domain in the configuration file
  • Testing the handling of non-standard multi-query DNS requests by a DNS proxy filter

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

dnstester_qboxxbyh-0.1.18.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dnstester_qboxxbyh-0.1.18-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file dnstester_qboxxbyh-0.1.18.tar.gz.

File metadata

  • Download URL: dnstester_qboxxbyh-0.1.18.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for dnstester_qboxxbyh-0.1.18.tar.gz
Algorithm Hash digest
SHA256 66051b47389a44e1426bca89ac65a8de40386abe0dbcb4c14dfa684d89e5d10b
MD5 69012866d809d5eb3d6d9c8187b8ae3f
BLAKE2b-256 fb2a0f68bb26c8fb6ce8aff751d12b931e10e4dd105c93cab963a0ecf02c109e

See more details on using hashes here.

File details

Details for the file dnstester_qboxxbyh-0.1.18-py3-none-any.whl.

File metadata

File hashes

Hashes for dnstester_qboxxbyh-0.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 adc12adb4d68cccd404018dd90aad95a1ccc310272ca6df14ffea8996ee4ec0d
MD5 eef5940f4d9a55c7c7635af8f6190758
BLAKE2b-256 d0752ce887453d2aff1bdc2ac3222f5b71850f92b1594ef8b0ca0de15b2c35fc

See more details on using hashes here.

Supported by

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