-
-
Notifications
You must be signed in to change notification settings - Fork 39
Description
Subject of the feature
I'd like to have the ability to pull in the query log history. Currently, my only method I can come up /w is directly loading the json log, but having a standardized way to do this via a pip package would be useful. I'd like to see the ability to pull in this data with various optional filters like date(s), domain, client etc...
Not sure the best option to return, possibly just a list of lists?
Problem
I am just looking for a standardized way to pull in the query log.
Expected behavior
This is my thought of a result, but you may have better ideas? This is pulling from the json log, but maybe I'm not sure how to decode the Answer etc.. to make it more like a format that shows in AdGuardHome /w the result?
[{'IP': '192.168.2.50', 'T': '2021-05-03T14:02:42.903667961-05:00', 'QH': 'self.events.data.microsoft.com', 'QT': 'A', 'QC': 'IN', 'Answer': 'nHKBgAABAAMAAAAABHNlbGYGZXZlbnRzBGRhdGEJbWljcm9zb2Z0A2NvbQAAAQABwAwABQABAAALcAAlEHNlbGYtZXZlbnRzLWRhdGEOdHJhZmZpY21hbmFnZXIDbmV0AMA8AAUAAQAAADcAIBRza3lwZWRhdGFwcmRjb2x3dXMwMwhjbG91ZGFwcMBcwG0AAQABAAAABQAENHKeNQ==', 'Result': {}, 'Elapsed': 1984088333, 'Upstream': 'https://dns10.quad9.net:443/dns-query'}, {'IP': '192.168.2.50', 'T': '2021-05-03T14:02:42.906417075-05:00', 'QH': 'min-api.cryptocompare.com', 'QT': 'AAAA', 'QC': 'IN', 'Answer': 'rHqBgAABAAEAAQAAB21pbi1hcGkNY3J5cHRvY29tcGFyZQNjb20AABwAAcAMAAUAAQAAAHoAFgdjY2MtYXBpCGNsb3VkYXBwA25ldADAPwAGAAEAAAAhAD0EcHJkMQ5henVyZWRucy1jbG91ZMBIBm1zbmhzdAltaWNyb3NvZnTAIn2j/DwAAAOEAAABLAAJOoAAAAA8', 'Result': {}, 'Elapsed': 1036963645, 'Upstream': 'https://dns10.quad9.net:443/dns-query'}, {'IP': '192.168.2.50', 'T': '2021-05-03T14:02:42.906843534-05:00', 'QH': 'datarouter.ol.epicgames.com', 'QT': 'AAAA', 'QC': 'IN', 'Answer': 'thiBgAABAAEAAQAACmRhdGFyb3V0ZXICb2wJZXBpY2dhbWVzA2NvbQAAHAABwAwABQABAAAAbAAWE2RhdGFyb3V0ZXItd2VpZ2h0ZWTAF8AXAAYAAQAAAFkARgducy0xMzY0CWF3c2Rucy00MgNvcmcAEWF3c2Rucy1ob3N0bWFzdGVyBmFtYXpvbsAkAAAAAQAAHCAAAAOEABJ1AAABUYA=', 'Result': {}, 'Elapsed': 1285522864, 'Upstream': 'https://dns10.quad9.net:443/dns-query'}, {'IP': '192.168.2.50', 'T': '2021-05-03T14:02:42.906895044-05:00', 'QH': 'datarouter.ol.epicgames.com', 'QT': 'A', 'QC': 'IN', 'Answer': 'p1CBgAABAAkAAAAACmRhdGFyb3V0ZXICb2wJZXBpY2dhbWVzA2NvbQAAAQABwAwABQABAAAAmAAWE2RhdGFyb3V0ZXItd2VpZ2h0ZWTAF8A5AAEAAQAAACEABDQ2mGfAOQABAAEAAAAhAAQix60gwDkAAQABAAAAIQAEIsnTiMA5AAEAAQAAACEABDbFMS/AOQABAAEAAAAhAAQiwErawDkAAQABAAAAIQAEA+AehMA5AAEAAQAAACEABAPk9iDAOQABAAEAAAAhAAQD5YEs', 'Result': {}, 'Elapsed': 1285649270, 'Upstream': 'https://dns10.quad9.net:443/dns-query'}, {'IP': '192.168.2.50', 'T': '2021-05-03T14:02:42.908108534-05:00', 'QH': 'min-api.cryptocompare.com', 'QT': 'A', 'QC': 'IN', 'Answer': 'WZ6BgAABAAIAAAAAB21pbi1hcGkNY3J5cHRvY29tcGFyZQNjb20AAAEAAcAMAAUAAQAAAEwAFgdjY2MtYXBpCGNsb3VkYXBwA25ldADANwABAAEAAAACAAQocxaG', 'Result': {}, 'Elapsed': 1038684218, 'Upstream': 'https://dns10.quad9.net:443/dns-query'}, {'IP': '192.168.2.50', 'T': '2021-05-03T14:02:42.941415513-05:00', 'QH': 'self.events.data.microsoft.com', 'QT': 'AAAA', 'QC': 'IN', 'Answer': 'NNCBgAABAAIAAQAABHNlbGYGZXZlbnRzBGRhdGEJbWljcm9zb2Z0A2NvbQAAHAABwAwABQABAAALcAAlEHNlbGYtZXZlbnRzLWRhdGEOdHJhZmZpY21hbmFnZXIDbmV0AMA8AAUAAQAAADcAIBRza3lwZWRhdGFwcmRjb2x3dXMwMwhjbG91ZGFwcMBcwIIABgABAAAAPAAzBHByZDEOYXp1cmVkbnMtY2xvdWTAXAZtc25oc3TAHX2j/DwAAAOEAAABLAAJOoAAAAA8', 'Result': {}, 'Elapsed': 2021640936, 'Upstream': 'https://dns10.quad9.net:443/dns-query'}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:43.138848533-05:00', 'QH': 'www.google.com', 'QT': 'AAAA', 'QC': 'IN', 'Answer': '/5aBgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAAcAAHADAAcAAEAAABWABAmB/iwQAAIDgAAAAAAACAE', 'Result': {}, 'Elapsed': 9123594, 'Upstream': '1.1.1.1:53'}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:43.722917387-05:00', 'QH': 'www.google.com', 'QT': 'A', 'QC': 'IN', 'Answer': 'preBgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAABAAHADAABAAEAAAEfAATYOsGE', 'Result': {}, 'Elapsed': 8898854, 'Upstream': '1.0.0.1:53'}, {'IP': '192.168.2.27', 'T': '2021-05-03T14:02:43.749427283-05:00', 'QH': 'www.facebook.com', 'QT': 'A', 'QC': 'IN', 'Answer': 'JIKBgAABAAIAAAAAA3d3dwhmYWNlYm9vawNjb20AAAEAAcAMAAUAAQAADfkAEQlzdGFyLW1pbmkEYzEwcsAQwC4AAQABAAAAJQAEHw1dIw==', 'Result': {}, 'Elapsed': 6916042, 'Upstream': '1.1.1.1:53'}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:44.308573273-05:00', 'QH': 'accounts.google.com', 'QT': 'AAAA', 'QC': 'IN', 'Answer': 'abSBgAABAAEAAAAACGFjY291bnRzBmdvb2dsZQNjb20AABwAAcAMABwAAQAAAKcAECYH+LBAIxAGAAAAAAAAAFQ=', 'Result': {}, 'Elapsed': 9054636, 'Upstream': '1.0.0.1:53'}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:44.310105304-05:00', 'QH': 'accounts.google.com', 'QT': 'A', 'QC': 'IN', 'Answer': '6rOBgAABAAEAAAAACGFjY291bnRzBmdvb2dsZQNjb20AAAEAAcAMAAEAAQAAADgABI76ilQ=', 'Result': {}, 'Elapsed': 10619115, 'Upstream': '1.0.0.1:53'}, {'IP': '192.168.2.155', 'T': '2021-05-03T14:02:44.731889158-05:00', 'QH': 'github.com', 'QT': 'A', 'QC': 'IN', 'Answer': 'WhqBgAABAAEAAAAABmdpdGh1YgNjb20AAAEAAcAMAAEAAQAAABgABIxScAM=', 'Result': {}, 'Elapsed': 10377448, 'Upstream': '1.1.1.1:53'}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:44.739825877-05:00', 'QH': 'www.google.com', 'QT': 'AAAA', 'QC': 'IN', 'Answer': 'U8CBgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAAcAAEDd3d3Bmdvb2dsZQNjb20AABwAAQAAAFUAECYH+LBAAAgOAAAAAAAAIAQ=', 'Result': {}, 'Elapsed': 69531}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:44.739908429-05:00', 'QH': 'www.google.com', 'QT': 'A', 'QC': 'IN', 'Answer': 'dZ6BgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAABAAEDd3d3Bmdvb2dsZQNjb20AAAEAAQAAAR4ABNg6wYQ=', 'Result': {}, 'Elapsed': 38438}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:45.69881322-05:00', 'QH': 'www.google.com', 'QT': 'AAAA', 'QC': 'IN', 'Answer': '+0SBgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAAcAAEDd3d3Bmdvb2dsZQNjb20AABwAAQAAAFQAECYH+LBAAAgOAAAAAAAAIAQ=', 'Result': {}, 'Elapsed': 138125}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:45.699277491-05:00', 'QH': 'www.google.com', 'QT': 'A', 'QC': 'IN', 'Answer': 'OGWBgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAABAAEDd3d3Bmdvb2dsZQNjb20AAAEAAQAAAR0ABNg6wYQ=', 'Result': {}, 'Elapsed': 88334}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:47.488235303-05:00', 'QH': 'www.google.com', 'QT': 'AAAA', 'QC': 'IN', 'Answer': 'PS6BgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAAcAAEDd3d3Bmdvb2dsZQNjb20AABwAAQAAAFIAECYH+LBAAAgOAAAAAAAAIAQ=', 'Result': {}, 'Elapsed': 109687}, {'IP': '192.168.2.10', 'T': '2021-05-03T14:02:47.488891813-05:00', 'QH': 'www.google.com', 'QT': 'A', 'QC': 'IN', 'Answer': '9IeBgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAABAAEDd3d3Bmdvb2dsZQNjb20AAAEAAQAAARsABNg6wYQ=', 'Result': {}, 'Elapsed': 84791}]
Alternatives
Haven't found a good alternative. I originally thought the queries portion would cover this, but the realized it was a count.
result = await adguard.stats.dns_queries()
print("DNS queries:", result)
