0

基本的に、ログイン試行と IP アドレスのリストを含む authlog/syslog ファイルがあります。ログイン試行が 5 回以上失敗したすべての IP アドレスを含む txt ファイルを作成する Python プログラムを作成する必要があります。ブラックリスト」。

基本的に次のようなものです:

「uniqueipaddress」と「authentication failure」が 5 回以上表示される場合は、uniqueipaddress を txt ファイルに追加します。

どんな助けでも大歓迎です-私はPythonでのプログラミングに非常に慣れていないので、簡単にしてみてください! ありがとう。

4

2 に答える 2

1

各行について:

  • IP と試行ステータスを読み取る
  • 失敗した試行回数の IP ごとの辞書を保持する

次に、辞書を調べます。

  • 5 回以上試行してすべての IP をファイルに出力する

Python のヒント:

  • ファイルを 1 行ずつ読み取るには、次のようにします。for line in open(filename)
  • ログ行の解析は、その形式に完全に依存します。いくつかの便利な Python ツールはsplit、文字列のメソッドと正規表現です。
  • 辞書を保持します。つまりips[ip]、試行回数です
于 2010-03-24T17:57:22.307 に答える
0

次のコードは、探しているものと同様のことを行う必要があります。完璧ではありませんが、良い出発点です。

ips = {}
for line in open('your_log.txt'):
    parts = line.split(' ') #assuming this is a good place to split
    if parts[1] == "AuthenticationFailure":
        if parts[0] in ips:
            ips[parts[0]] += 1
        else:
            ips[parts[0]] = 0

for ip in [k for k,v in ips.iteritems() if v >= 5]:
    #WRITE TO FILE HERE

これは、ログ ファイルが次のような構造になっていることを前提としています。

1.1.1.1 LoginSuccess
2.2.2.2 LoginSuccess
3.3.3.3 AuthenticationFailure
于 2010-03-24T20:37:31.963 に答える