1def __init__(self, shodan_api=None):
2 """
3 Initialize a new Bamf instance
4
5 `Optional`
6 :param str shodan_api: Shodan API key
7
8 """
9 mechanize.Browser.__init__(self)
10 self._models = {}
11 self._targets = {}
12 self._devices = []
13 self._threads = []
14 self._backdoors = []
15 self._queue = Queue.Queue()
16 self._query = 'alphanetworks/2.23'
17 self._ports = [8000, 8080, 8888]
18 self._semaphore = threading.Semaphore(value=1)
19 self._database = sqlite3.connect('database.db')
20 self._database.executescript(self.__tbl_config)
21 self._database.executescript(self.__tbl_routers)
22 self._database.executescript(self.__tbl_devices)
23 self._shodan = self._init_shodan(shodan_api)
24 self.addheaders = [('User-Agent', 'xmlset_roodkcableoj28840ybtide')]
25 self.set_handle_robots(False)
26 self.set_handle_redirect(True)
27 self.set_handle_refresh(True)
28 self.set_handle_equiv(True)
29 self.set_handle_referer(True)
30 self.set_debug_http(False)
31 self.set_debug_responses(False)