Skip to content

Request: Query Log History #303

@Dulanic

Description

@Dulanic

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}]

image

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleThere has not been activity on this issue or PR for quite some time.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions