diff options
author | Wojciech Kosior <kwojtus@protonmail.com> | 2020-05-29 12:05:40 +0200 |
---|---|---|
committer | Wojciech Kosior <kwojtus@protonmail.com> | 2020-05-29 12:05:40 +0200 |
commit | 862e951caebb97ce4529b4faa4abb56d2c15b762 (patch) | |
tree | 9e01b4f6df6f88c8dd3cdd3a61b71150b62353f1 | |
parent | fab2c94f4fba49a06d5fb1d21d1ff990fadecfe0 (diff) | |
download | 0tdns-862e951caebb97ce4529b4faa4abb56d2c15b762.tar.gz 0tdns-862e951caebb97ce4529b4faa4abb56d2c15b762.zip |
add python script for performing unbound queries
-rwxr-xr-x | perform_queries.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/perform_queries.py b/perform_queries.py new file mode 100755 index 0000000..4762e14 --- /dev/null +++ b/perform_queries.py @@ -0,0 +1,39 @@ +#!/bin/python3 + +import unbound + +def query_planned_queries(hour, vpn_id): + # TODO query database + # for now, return some sample thought-up data + return ( + # dns server IP | dns server id | service_id | service_name + ("195.98.79.117", 23, ((89, "devuan.org"), + (44, "gry.pl"), + (112, "invidio.us"))), + ("192.71.245.208", 33, ((77, "debian.org"), + (22, "nie.ma.takiej.domeny"), + (100, "onet.pl"))) + ) + +def resolve_call_back(mydata, status, result): + dns_id, service_id = mydata + # TODO write to database + print("callback called for {}".format(result.qname)) + if status==0 and result.havedata: + print("Result:",result.data.address_list) + +# hour from argv | vpn_id in database +contexts = [] +for dns_addr, dns_id, services in query_planned_queries("1999-01-08 04:00", 11): + ctx = unbound.ub_ctx() + ctx.set_fwd(dns_addr) + for service_id, service_name in services: + print(service_name) + print("starting resolution: {} through {}".format(service_name, dns_addr)) + ctx.resolve_async(service_name, (dns_id, service_id), + resolve_call_back, + unbound.RR_TYPE_A, unbound.RR_CLASS_IN) + contexts.append(ctx) + +for ctx in contexts: + ctx.wait() |