解析DNS日志并从日志返回顶级IP和域名

2024-10-03 11:15:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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.  

文件拼接不工作,无法将项添加到字典。你知道吗


Tags: 文件ininfodnslinenovfilegeneral