def injector_add(self, add_type, filter_string):
     if add_type == "aps":
         add_list = ObjectFilter().filter(
             self.air_scanner.get_access_points(), filter_string)
         for ap in add_list:
             self.air_injector.add_ap(ap.bssid, ap.ssid, ap.channel)
     elif add_type == "clients":
         add_list = ObjectFilter().filter(
             self.air_scanner.get_wifi_clients(), filter_string)
         for client in add_list:
             if client.associated_ssid != None:
                 if client.associated_bssid and client.associated_bssid != "":
                     self.air_injector.add_client(client.client_mac,
                                                  client.associated_bssid,
                                                  client.associated_ssid)
             else:
                 print "[-] Cannot add client '{}' because no AP ssid is associated".format(
                     client.client_mac)
     elif add_type == "probes":
         self.air_scanner.update_bssids_in_probes()
         add_list = ObjectFilter().filter(
             self.air_scanner.get_probe_requests(), filter_string)
         for probe in add_list:
             if len(probe.ap_bssids) > 0:
                 for bssid in probe.ap_bssids:
                     if bssid and bssid != "":
                         self.air_injector.add_client(
                             probe.client_mac, bssid, probe.ap_ssid)
             else:
                 print "[-] Cannot add client '{}' because no AP bssid is associated".format(
                     probe.client_mac)
	def deauthor_del(self, del_type, filter_string):
		if del_type == "aps":
			del_list = set(ObjectFilter().filter(self.air_deauthenticator.aps_to_deauth, filter_string))
			self.air_deauthenticator.del_aps(del_list)
		elif del_type == "clients":
			del_list = ObjectFilter().filter(self.air_deauthenticator.clients_to_deauth, filter_string)
			self.air_deauthenticator.del_clients(del_list)
 def injector_del(self, del_type, filter_string):
     if del_type == "aps":
         del_list = set(ObjectFilter().filter(self.air_injector.get_ap_targets(), filter_string))
         self.air_injector.del_aps(del_list)
     elif del_type == "probes" or del_type == "clients":
         del_list = ObjectFilter().filter(self.air_injector.get_client_targets(), filter_string)
         self.air_injector.del_clients(del_list)
	def deauthor_add(self, add_type, filter_string):
		if add_type == "aps":
			add_list = ObjectFilter().filter(self.air_scanner.get_access_points(), filter_string)
			for ap in add_list:
				self.air_deauthenticator.add_ap(ap.bssid, ap.ssid, ap.channel)
		elif add_type == "clients":
			self.air_scanner.update_bssids_in_probes()
			add_list = ObjectFilter().filter(self.air_scanner.get_probe_requests(), filter_string)
			for client in add_list:
				client_mac = client.client_mac
				try:
					if len(client.ap_bssids) > 0:
						for bssid in client.ap_bssids:
							if bssid and bssid != "":
								self.air_deauthenticator.add_client(client_mac, bssid, client.ap_ssid)
				except:
					print "[-] Cannot add client '{}' because no AP bssid is associated".format(client_mac)
 def _add_clients(self, filter_string):
     add_list = ObjectFilter().filter(self.air_scanner.get_wifi_clients(),
                                      filter_string)
     for client in add_list:
         if client.associated_ssid is not None:
             if client.associated_bssid and client.associated_bssid != "":
                 self.air_injector.add_client(client.client_mac,
                                              client.associated_bssid,
                                              client.associated_ssid)
         else:
             print "[-] Cannot add client '{}' because no AP ssid is associated".format(
                 client.client_mac)
 def _add_probes(self, filter_string):
     self.air_scanner.update_bssids_in_probes()
     add_list = ObjectFilter().filter(self.air_scanner.get_probe_requests(),
                                      filter_string)
     for probe in add_list:
         if len(probe.ap_bssids) > 0:
             for bssid in probe.ap_bssids:
                 if bssid and bssid != "":
                     self.air_injector.add_client(probe.client_mac, bssid,
                                                  probe.ap_ssid)
         else:
             print "[-] Cannot add client '{}' because no AP bssid is associated".format(
                 probe.client_mac)
 def _add_aps(self, filter_string):
     add_list = ObjectFilter().filter(self.air_scanner.get_access_points(),
                                      filter_string)
     for ap in add_list:
         self.air_injector.add_ap(ap.bssid, ap.ssid, ap.channel)