2010-03-24 10 views
0

Fondamentalement, j'ai un fichier authlog/syslog avec une liste de tentatives de connexion et les adresses IP - Je dois créer un programme Python qui sera créer un fichier txt avec toutes les adresses IP qui ont plus de 5 tentatives de connexion échouées - une sorte de "liste noire".Python - créer un fichier liste noire des adresses IP qui ont plus de 5 tentatives de connexion échouées dans authlog

Donc, fondamentalement, quelque chose comme:

si « uniqueipaddress » et « échec d'authentification » apparaissent plus de 5 fois, ajoutez uniqueipaddress au fichier txt.

Toute aide serait grandement appréciée - s'il vous plaît essayez de simplifier car je suis très, très inexpérimenté dans la programmation en Python! Merci.

Répondre

1

Pour chaque ligne:

  • lire l'état IP et tentative
  • garder un dictionnaire par IP quantité de tentatives infructueuses

aller ensuite sur le dictionnaire:

  • imprime pour enregistrer toutes les adresses IP avec 5 tentatives ou plus

conseils Python:

  • Pour lire un fichier ligne par ligne: for line in open(filename)
  • la ligne de Parsing journal dépend entièrement de son format. Certains outils Python utiles sont la méthode split d'une chaîne, et des expressions régulières
  • Gardez un dictionnaire, à savoir ips[ip] est quantité de tentatives
+0

Merci, qui aide - une chance de tout code exemple pour montrer dans la pratique? Merci beaucoup. –

+0

@oz_babe: mis à jour ma réponse –

0

Le code suivant devrait faire quelque chose de semblable à ce que vous cherchez. Ce n'est pas parfait, mais c'est un bon point de départ.

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 

Cela suppose que votre fichier journal est structuré quelque chose comme ceci:

1.1.1.1 LoginSuccess 
2.2.2.2 LoginSuccess 
3.3.3.3 AuthenticationFailure 
Questions connexes