Анализировать журналы DNS и возвращать верхние IP и доменные имена из файла журнала - PullRequest
0 голосов
/ 22 марта 2019

У меня есть файл журнала DNS (txt), мне нужно разобрать файл журнала, удалить неправильные записи и выполнить обратный поиск, а также перечислить IP-адрес клиента и домены запросов

Попробовал несколько подходов. Я могу проанализировать файл с помощью выражений reg и удалить неправильные записи, но не могу разрезать строку, чтобы создать словарь для IP-адресов и доменных имен.

Пример файла

07-Nov-2009 20:11:01.863 queries: info: client 7.204.241.161#52985: query: 181.190.75.3.in-addr.arpa IN PTR +
07-Nov-2009 20:11:01.893 queries: info: client 3.75.190.181#54339: query: jabber.usma.bluenet IN A +
07-Nov-2009 20:11:02.326 general: warning: checkhints: unable to find root NS 'cluster2.hq.simnet' in hints
07-Nov-2009 20:11:02.326 general: warning: checkhints: extra NS 'A.ROOT-SERVERS.NET' in hints
07-Nov-2009 20:11:02.326 general: warning: checkhints: extra NS 'B.ROOT-SERVERS.NET' in hints
pattern = re.compile(r".*queries: info:.*IN A")  # Compile a case-insensitive regex pattern.

cnt = 0
with open ('c:\python\dns_log_file.txt', 'rt') as dns_file: 
    for line in  dns_file:                            # Try to:
        if pattern.search(line) != None:          # If substring search finds a match,
            err_occur.append((line.rstrip('\n'))) # strip linebreaks, store line and line number in list as tuple.
    for linenum, line in enumerate(err_occur,start=1):        # Keep track of line numbers.  

Соединение файла, не работающее, не может добавить элемент в словарь.

...