Skip to main content

No project description provided

Project description

Python DNS Client Library

PyPI - Python Version PyPI - Python Version PyPI - Downloads

Python client library for sending DNS queries.

  • null-dependency
  • threadsafe
  • type hints
  • contains adapter for requests

Install:

# from pypi.org
pip install dns-client

# latest commit
pip install git+https://github.com/s3rgeym/python-dns-client.git

Examples:

In [1]: from dns_client import DNSClient, RecordType

In [2]: c = DNSClient('1.1.1.1')

In [3]: c.query('ya.ru', RecordType.AAAA)
Out[3]: [Record(name='ya.ru', qtype=<RecordType.AAAA: 28>, qclass=<RecordClass.IN: 1>, ttl=76, value='2a02:6b8::2:242')]

In [4]: c.query('ya.ru', RecordType.MX)
Out[4]: [Record(name='ya.ru', qtype=<RecordType.MX: 15>, qclass=<RecordClass.IN: 1>, ttl=2242, value=(10, 'mx.yandex.ru'))]

In [5]: c.get_response_query('ya.ru')
Out[5]: Packet(header=Header(id=47527, response=True, opcode=<OpCode.QUERY: 0>, authoritative=False, truncated=False, recursion_desired=True, recursion_available=True, reserved=False, authentic_data=False, check_disabled=False, rcode=<ResponseCode.NOERROR: 0>, num_questions=1, num_records=2, num_authorities=0, num_additionals=0), questions=[Question(name='ya.ru', qtype=<RecordType.A: 1>, qclass=<RecordClass.IN: 1>)], records=[Record(name='ya.ru', qtype=<RecordType.A: 1>, qclass=<RecordClass.IN: 1>, ttl=266, value='77.88.55.242'), Record(name='ya.ru', qtype=<RecordType.A: 1>, qclass=<RecordClass.IN: 1>, ttl=266, value='5.255.255.242')])

In [6]: c.get_all_records('ya.ru')
Out[6]:
[('A', '5.255.255.242'),
 ('A', '77.88.55.242'),
 ('AAAA', '2a02:6b8::2:242'),
 ('MX', (10, 'mx.yandex.ru')),
 ('NS', 'ns1.yandex.ru'),
 ('NS', 'ns2.yandex.ru'),
 ('TXT',
  '_globalsign-domain-verification=eLi0_-xATuNmRfuTIX8VQIvgfyi7Od7Hph4V0yNisF'),
 ('TXT',
  '_globalsign-domain-verification=xUUDG4u7Zo56EmmFewz7Y4UK3MfAU7QSjAgBsy0w6q'),
 ('TXT',
  'google-site-verification=SVTEeUiCU4KV-5qGw4o4JPok7mfsP8NtQTIdN6tt6Nw'),
 ('TXT', 'v=spf1 redirect=_spf.yandex.ru'),
 ('TXT',
  '_globalsign-domain-verification=dHoe580bPQ-lfi_vh-BEIwB4NAtUwURIzrzsivByVL'),
 ('TXT', 'e1c8e4dd3d13fad0dd9e8ed54a1813ececd3d5412fb16c4ed2c0612332950fe')]

You can use dns-client with requests:

# to see logs
import logging
from dns_client.log import logger

logging.basicConfig()
logger.setLevel(logging.DEBUG)

from dns_client.adapters.requests import DNSClientSession

s = DNSClientSession('1.1.1.1')
s.get('https://google.com')

CLI Usage:

$ python -m dns_client ya.ru -t aaaa
2a02:6b8::2:242

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

dns-client-0.1.7.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

dns_client-0.1.7-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file dns-client-0.1.7.tar.gz.

File metadata

  • Download URL: dns-client-0.1.7.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for dns-client-0.1.7.tar.gz
Algorithm Hash digest
SHA256 25fae2bd1b3934da5f5c63fd605c922c3c6b4414cb2adf3d286895476c324ea7
MD5 109f228565bfc09d3423f6e3f46975b2
BLAKE2b-256 00b2fa091937665c70b0117609046fc6d4619e323af3253a2f604a2549abd643

See more details on using hashes here.

File details

Details for the file dns_client-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: dns_client-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for dns_client-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7f11a6446abbe0db69aa5b5481e2b63e2726a021ff2126e0aad23ec63aaba95a
MD5 2dd5734e0e34af5c9dc8e6745130c304
BLAKE2b-256 ad26b6215cf3e8b3e80e771d08f9ac286df59f484b087ddb20e04aafa0a53d03

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