我有4个表:Python的检查三个列表追加到第四
“criticallist”`
[ade4c7059e17ab9e47d2aaec6cf04a9d, 882edee4cc71806190ca43993e8b2eb5, nekspzwjxhqroiu.com, htfbzqewll.org]`
“大师”
[4d7d1c89529bcfcbbbbf9d6a2ba42cb5, 9f26da4de1653f609e7b4bcaade63daa]
,然后将每个函数MD5的独立名单 - [出。 49f12a7b358c7f7cba005610210418aa] “md5-ThreatExpert”和“md5-HybridAnalysis”,它们都在它们各自的函数中,我将其重命名为“md5threat”。
然后在每个函数中,我试图比较“关键列表”和“主”对“md5threat”。
任何不属于“关键列表”或“主”的“md5threat”都会添加到“md5broinput”中。
AND 如果它被添加到“md5broinput”,它也会附加回“主”。
“md5broinput”每一天都是新的,我会每周擦拭“主人”。
def md5threatexpertcritical():
filename = open("md5-ThreatExpert-bro", 'w') #input file for bro script gone through critical checks
md5threat = "md5-ThreatExpert" #latest md5's from MISP
#create bromaster if doesn't exist
if os.path.exists("bromasterlist"):
pass
else:
f = file("bromasterlist", "w")
f.close()
master = "bromasterlist" #master bro list that we've already added to bro
PATH = "/opt/critical-stack/frameworks/intel"
CRITICAL = "master-public.bro.dat"
CRITICALSTACK = os.path.join(PATH, CRITICAL)
criticallist = "/home/money/Documents/hybrid/critical"
whitelist = open(criticallist,'w')
with open(CRITICALSTACK,'r') as CRITICALSTACK1:
reader = csv.reader(CRITICALSTACK1, delimiter='\t')
CRITICAL = []
for row in reader:
CRITICAL.append(row[0])
whitelist.write("\n".join(CRITICAL))
x=[]
y=[]
z=[]
md5broinput=[]
with open(criticallist, 'r') as critical:
for line in critical:
line = line.strip()
x.append(line)
with open(master, 'r') as bromaster:
for line in bromaster:
line = line.strip()
y.append(line)
with open(md5threat, 'r') as md5threat:
for line in md5threat:
line = line.strip()
z.append(line)
for md5 in z:
if md5 in y:
print md5+" is in bromaster"
pass
elif md5 in x:
print md5+" is in critical"
pass
elif md5 not in x and y:
y.append(md5)
md5broinput.append(md5)
filename.write("\n".join(md5broinput))
filename.close()
f=open(master,'a')
f.write("\n".join(set(y)))
f.write("\n")
f.close()
def md5hybridanalysiscritical():
filename = open("md5-HybridAnalysis-bro", 'w+')
md5threat = "md5-HybridAnalysis" #latest md5's from MISP
master = "bromasterlist" #master bro list that we've already added to bro
PATH = "/opt/critical-stack/frameworks/intel"
CRITICAL = "master-public.bro.dat"
CRITICALSTACK = os.path.join(PATH, CRITICAL)
criticallist = "/home/money/Documents/hybrid/critical"
x=[]
y=[]
z=[]
md5broinput=[]
with open(criticallist, 'r') as critical:
for line in critical:
line = line.strip()
x.append(line)
with open(master, 'r') as bromaster:
for line in bromaster:
line = line.strip()
y.append(line)
with open(md5threat, 'r') as md5threat:
for line in md5threat:
line = line.strip()
z.append(line)
for md5 in z:
if md5 in y:
print md5+" is in bromaster"
pass
elif md5 in x:
print md5+" is in critical"
pass
elif md5 not in x and y:
y.append(md5)
md5broinput.append(md5)
filename.write("\n".join(md5broinput))
filename.close()
f=open(master,'a')
f.write("\n".join(set(y)))
f.write("\n")
f.close()
问题的第一句话你有四个名为“criticallist,master,md5threat,md5broinput”的列表,**其中只有一个是你的代码中的列表**其他列表是由变量'x, y,z'这使得在阅读了关于'master'列表和其他的描述之后更加难以理解。 –