IP-Adresse/Netzwerk Analyse von text-Datei mit python

Habe ich den untenstehenden text-Datei, die ich bräuchte etwas Hilfe bei Analyse der IP-Adressen.

Die text-Datei ist von der form

abc 10.1.1.1/32   aabbcc
def 11.2.0.0/16   eeffgg
efg 0.0.0.0/0   ddeeff

In anderen Worten, eine Reihe von IP-Netzwerken existieren, die als Teil einer log-Datei. Die Ausgabe sollte so bereitgestellt werden, wie unten:

10.1.1.1/32
11.2.0.0/16
0.0.0.0/0

Habe ich den code unten, aber nicht zur Ausgabe der gewünschten Informationen

file = open(filename, 'r')
for eachline in file.readlines():
    ip_regex = re.findall(r'(?:\d{1,3}\.){3}\d{1,3}', eachline)
    print ip_regex
  • Versuchen Sie, zu beschreiben, was nicht jede Zeile code, und Sie werden den Fehler zu finden. siehe re-Dokumentation zu.
  • Gut, Sie enthält nicht alles, was in Ihrem regulären Ausdruck für die /32 oder ähnliches am Ende, so natürlich es geht nur um die übereinstimmung der 10.1.1.1 oder ähnliches.
  • re.findall("\d+\.\d+\.\d+\.\d+\/\d+",file.read()), sollten Sie auch with zum öffnen Ihrer Dateien
  • Als seitliche Anmerkung, es gibt keinen Grund zu verwenden readlines() es. file bereits in einem wiederholenden Linien. Alles, was Sie tun, ist verschwenderisch zwingt Python zu Lesen und zu analysieren, die gesamte Datei in den Speicher, bevor Sie es verwenden können.
  • Als weitere Randbemerkung, das sind keine IP-Adressen, die sind IP-Netzwerke, die eine Adresse enthalten, und eine Bitmaske. In der Tat, den existierenden code bereits suchen der IP-Adressen, die Teil dieser Netzwerke...
  • du hast Recht...ein bisschen schlampig mit der IP-Terminologie in der Frage...sollten Sie IP-Netzwerke

InformationsquelleAutor lordlabakdas | 2014-10-14
Schreibe einen Kommentar