Exemple #1
0
    def cves(self):
        log.info('++++++++++++++++++++++++++++++++++++++++++++')
        log.info('正在获取 [%s] 威胁情报...' % self.NAME_CH())
        old_cves = self.load_cache()

        try:
            new_cves = self.get_cves()
        except:
            new_cves = []
            log.error('获取 [%s] 威胁情报异常' % self.NAME_CH())

        dao = TCvesDao()
        sdbc = SqliteSDBC(env.DB_PATH)
        conn = sdbc.conn()
        _cves = []
        for cve in new_cves:
            if cve.MD5() not in old_cves:
                _cves.append(cve)
                self.to_cache(cve)
                self.to_db(conn, dao, cve)
        sdbc.close()

        log.info('得到 [%s] 最新威胁情报 [%s] 条' % (self.NAME_CH(), len(_cves)))
        log.info('--------------------------------------------')
        return _cves
Exemple #2
0
def query_cves(conn, src, limit):
    dao = TCvesDao()
    where = "and %s = '%s' order by %s desc limit %d" % (TCves.s_src, src, TCves.s_time, limit)
    sql = TCvesDao.SQL_SELECT + where
    beans = []
    try:
        cursor = conn.cursor()
        cursor.execute(sql)
        rows = cursor.fetchall()
        for row in rows:
            bean = dao._to_bean(row)
            beans.append(bean)
        cursor.close()
    except:
        log.error("从表 [%s] 查询数据失败" % TCves.table_name)
    return beans
Exemple #3
0
    def cves(self):
        log.info("++++++++++++++++++++++++++++++++++++++++++++")
        log.info(f"正在获取 [{self.name_ch}] 威胁情报...")
        old_cves = self.load_cache()

        try:
            new_cves = self.get_cves()
        except:
            new_cves = []
            log.error(f"获取 [{self.name_ch}] 威胁情报异常")

        dao = TCvesDao()
        sdbc = SqliteSDBC(config.DB_PATH)
        result = []
        with sdbc.conn() as conn:
            for cve in new_cves:
                if cve.MD5() not in old_cves:
                    result.append(cve)
                    self.to_cache(cve)
                    self.to_db(conn, dao, cve)

        log.info("得到 [%s] 最新威胁情报 [%s] 条" % (self.name_ch, len(result)))
        log.info("--------------------------------------------")
        return result