No project description provided
Project description
Python DNS Client Library
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_query_response('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
:
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 ns -H 127.0.0.1
1... .... .... .... : Response = True
.000 0... .... .... : Opcode = <OpCode.QUERY: 0>
.... .0.. .... .... : Authoritative = False
.... ..0. .... .... : Truncated = False
.... ...1 .... .... : Recursion Desired = True
.... .... 1... .... : Recursion Available = True
.... .... .0.. .... : Reserved = False
.... .... ..0. .... : Authentic Data = False
.... .... ...0 .... : Check Disabled = False
.... .... .... 0000 : Rcode = <ResponseCode.NOERROR: 0>
Number of Records: 2
ns1.yandex.ru
ns2.yandex.ru
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
dns-client-0.1.8.tar.gz
(13.1 kB
view hashes)
Built Distribution
dns_client-0.1.8-py3-none-any.whl
(13.7 kB
view hashes)
Close
Hashes for dns_client-0.1.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55fe28507c198f9d7b846217ebd529dc7f48c9b50a95d754e6192f8dffd63973 |
|
MD5 | 8300479fadef3de8a99f9526482a2023 |
|
BLAKE2b-256 | 1042cd603ab5893eb1e5dc4ffd68738bf1214f3b100e475c02c06f8f8feadfab |