Ich habe 2 Pickel-Dateien, die die IP-Adresse zusammen mit den Ports, AWS_Tags und Region Informationen enthalten. Dies ist im Prinzip ein Port-Scanner, der eine Methode hat, die druckt, wenn eine neue IP-Adresse gefunden wird. Dies wird durch Subtraktion der NEW_pickel_scan mit OLD_pickel_scan geschieht wie folgt:Drucken von zusätzlichen Details (Tag_Name & Region) beim Subtrahieren von 2 Sets()
self.prev_hosts = set()
self.curr_hosts = set()
def new_hosts(self)
result_new_hosts = self.curr_hosts - self.prev_hosts
das funktioniert gut und druckt die neue IP im pickel Bericht hinzugefügt.
Jetzt muss ich auch das zugehörige Tag und die Region dieser IP-Adresse hinzufügen. Ich habe die benötigten Daten bereits bei einer Abbildung:
mapping = {i[0]:[i[1],i[2]] for i in data}
i [0] IP ist, i [1] ist Tag und i [2] ist die Region
so dass ich den Tag zu drucken versuche Verwenden Sie diese Zuordnung.
Gerade zum Beispiel ich eine andere Methode haben, die gedruckt wird, wenn ein illegle Port gefunden
def dump_raw(self,mapping):
nmap_report = self.report
for host in nmap_report.hosts:
#print
if len(host.hostnames):
tmp_host = host.hostnames.pop()
else:
tmp_host = host.address
print("Nmap scan report for {0} ({1})".format(tmp_host,host.address))
print("Host is {0}.".format(host.status))
#val = config.get('ports', 'scan_range')
#val_known = config.get('ports','known')
#safe_port = range(*map(int, val.split(',')))
#known_ports = map(int, val_known.split(','))
print(" PORT STATE SERVICE")
for serv in host.services:
if serv.state == "open":
## print ('Illegal Port open :'+str(serv.port) +'/'+str(serv.protocol)+' '+str(serv.service)+', on host=> '+str(host))
print ('Illegal Port open :'+str(serv.port) +'/'+str(serv.protocol)+' '+str(serv.service)+', on host=> '+str(host) + ' Tag =' + (mapping[host.address.strip()][0]) + ' Region =' + str(mapping[host.address.strip()][1]))
Dies ist, wie i-Mapping verwendet, kann mir jemand für die helfen?
Ich habe versucht:
def new_hosts(self,mapping):
"""Return a list of new hosts added in latest scan"""
result_new_hosts = self.curr_hosts - self.prev_hosts
print mapping[result_new_hosts]
heißt es: TypeError: unhashable type: 'set'
auch wenn ich so etwas wie:
def new_hosts(self,mapping):
"""Return a list of new hosts added in latest scan"""
result_new_hosts = self.curr_hosts - self.prev_hosts
print mapping[result_new_hosts]
nmap_report = self.report
for host in nmap_report.hosts:
for serv in host.services:
print result_new_hosts,mapping[result_new_hosts.address.strip()[0]],mapping[result_new_hosts.address.strip()[1]]
return (result_new_hosts,mapping[result_new_hosts.address.strip()[0]],mapping[result_new_hosts.address.strip()[1]])
Dies druckt:
AttributeError: 'set' object has no attribute 'address'
in Ordnung, aber mein Problem bleibt, ich muss den zugeordneten zugeordneten TAG und REGION Namen auch ausdrucken, das ist mein voller Code: http://pastebin.com/xbZL0pjg, bitte werfen Sie einen Blick – Kittystone
@ Kittystone Haben Sie versucht, diesen Code ausgeführt? Es sollte genau das tun, was Sie wollen (vorausgesetzt, dass die Werte im 'mapping' Wörterbuch tatsächlich das Tupel' (tag, region) sind). – DeepSpace
ok, während, wenn Sie nur den Fluss von meinem Code sehen können coz everthing funktioniert gut und Zuordnung hat Tags und Region zugeordnet – Kittystone