私は SIEM を使用しており、比較的大きなファイルから IP アドレスを解析できる必要があります。一貫したフィールドがないため、「カット」はオプションではありません。az AZ 0-9 とピリオド "." を除くすべての文字を削除するために、修正した python スクリプトを使用しています。ファイルを適切に解析できるようにします。問題は、これが私の SIEM ファイルでは機能しないことです。この「192.168.1.2!@#$!@%@$」のようなテキスト ファイルがあれば問題ありません。不要な文字はすべて適切に削除され、IP だけが新しいファイルに出力されます。 . 問題は、ファイルが「192.168.168.168@#$% これはテストです」のように見える場合、異常な文字を削除する最初の段階の後にそのまま放置されることです。助けてください、なぜこれを行うのかわかりません。これが私のコードです:
#!/usr/bin/python
import re
import sys
unmodded = raw_input("Please enter the file to parse. Example: /home/aaron/ipcheck: ")
string = open(unmodded).read()
new_str = re.sub('[^a-zA-Z0-9.\n\.]', ' ', string)
open('modifiedipcheck.txt', 'w').write(new_str)
try:
file = open('modifiedipcheck.txt', "r")
ips = []
for text in file.readlines():
text = text.rstrip()
regex = re.findall(r'(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?: [\d]{1,3})$',text)
if regex is not None and regex not in ips:
ips.append(regex)
for ip in ips:
outfile = open("checkips", "a")
combine = "".join(ip)
if combine is not '':
print "IP: %s" % (combine)
outfile.write(combine)
outfile.write("\n")
finally:
file.close()
outfile.close()
誰にもアイデアはありますか?よろしくお願いします。