← 返回题库
中级

分析请求日志识别异常IP

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    request_logs_csv = open_url(____).read()
    import pandas as pd
    from io import StringIO
    logs = pd.read_csv(StringIO(____))
    WINDOW = ____
    MIN_TS = logs['____'].min()
    MAX_TS = logs['____'].max()
    ip_stats = []
    for ip, grp in logs.groupby(____):
        total = len(____)
        error_rate = (____).mean()
        paths = grp['____'].nunique()
        ts_range = grp['____'].max() - grp['____'].min()
        rps = total / max(____)
        ip_stats.append({'____':ip,'____':total,'____':round(____),'____':paths,'____':round(____)})
    ip_df = pd.DataFrame(____).sort_values(____)
    suspicious = ip_df[(____) | (____) | (____)]
    print(____)
    print(ip_df.to_string(____))
    print(____)

示例

输入
solve()
期望输出
异常IP分析:
          ip  total  error_rate  paths   rps
    10.0.0.1     19       0.053      5 0.278
    10.0.0.2     12       0.167      5 0.229
192.168.1.12      7       0.000      3 0.145
192.168.1.10      6       0.500      4 0.088
192.168.1.11      6       0.167      3 0.126
疑似异常IP数: 3
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码