Python - создать файл черного списка IP-адресов, которые имеют более 5 неудачных попыток входа в систему - PullRequest
0 голосов
/ 24 марта 2010

В основном у меня есть файл authlog / syslog со списком попыток входа в систему и IP-адресами - мне нужно создать программу на Python, которая создаст txt-файл со всеми IP-адресами, которые имеют более 5 неудачных попыток входа в систему - своего рода «черный список».

Так что в основном что-то вроде:

если «uniqueipaddress» и «сбой аутентификации» появляются более 5 раз, добавьте uniqueipaddress в текстовый файл.

Любая помощь будет принята с благодарностью - пожалуйста, постарайтесь сделать ее проще, так как я очень, очень неопытен в программировании на Python! Спасибо.

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Для каждой строки:

  • читать IP и пытаться статус
  • вести словарь по IP количества неудачных попыток

Затем просмотрите словарь:

  • распечатать в файл все IP с 5 или более попыток

Python подсказки:

  • Чтобы прочитать файл построчно: for line in open(filename)
  • Анализ строки журнала полностью зависит от ее формата. Некоторыми полезными инструментами Python являются split метод строки и регулярные выражения
  • Сохранить словарь, т. Е. ips[ip] - количество попыток
0 голосов
/ 24 марта 2010

Следующий код должен делать что-то похожее на то, что вы ищете. Это не идеально, но это хорошая отправная точка.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...