Bitdefender在国内感觉文档还是比较少,都没怎么看到,今天公司给了个api要求把文件中的域名或者url给筛选出恶意与非恶意了,文档中只写了两种语言的例子,python和php,我这里就使用python完成了。

# coding:utf-8
import os
import sys
import timereload(sys)
sys.setdefaultencoding('utf8')import io
import re
import urllib2
import json
import threadpool'''筛选恶意网站 和 BitdefenderTest.py 不同的是 筛选恶意网址的条件不同。
'''# 这两个参数根据提供方给你提供的替换好就行了
API_KEY = "insert-your-API-key-here"
API_URL = "https://nimbus.bitdefender.net/batch/url/status"
# 记录非恶意网址的数组
safe_data = []
# 记录恶意网址的数组
spite_data = []
# 记录失败网址的数组
error_data = []
# 记录所有网址的数组
line_data = []
# 记录文件名字
name = ""'''获取所有的网址
'''
def getAllUrl(urlTexts):# 遍历传入的文件for urlText in urlTexts:f = io.open(urlText, 'r', encoding='UTF-8')# 初始化需要用到的数组global line_dataline_data = []global safe_datasafe_data = []global spite_dataspite_data = []global error_dataerror_data = []# 遍历文件for line in f.readlines():line = line.strip()line_data.append(line)f.close()# 设置文件的名字global namename = os.path.splitext(urlText)[0]print (len(line_data))# 开启线程池调用接口pool = threadpool.ThreadPool(10)requests = threadpool.makeRequests(identify, line_data)[pool.putRequest(req) for req in requests]pool.wait()write_data()'''调接口识别恶意与非恶意的网址
'''
def identify(identify_url):try:# 格式化一下网址url = identify_urlif not re.match("http://", identify_url) and not re.match("https://", identify_url):url = "http://" + identify_url# 开始调用request = urllib2.Request(API_URL,json.dumps([dict(url=url)]),{'Content-Type': 'application/json',"X-Nimbus-ClientId": API_KEY})response = urllib2.urlopen(request)data = json.loads(response.read())# 识别非恶意和恶意的网址if data[0]["status_code"] == 0 \and data[0]["status_message"] == "not found" \and data[0]["domain_grey"] is False:safe_data.append(identify_url)else:spite_data.append(identify_url)except Exception, ex:ex = "Error: " + str(ex) + "  --" + identify_urlerror_data.append(identify_url)print ex;'''将数据写入文件
'''
def write_data():# 总数对比text_name = name + "_total_count.txt"cf = open(text_name, "w")cf.write("总数" + str(len(line_data)) + "\n")cf.write("非恶意总数" + str(len(safe_data)) + "\n")cf.write("恶意总数" + str(len(spite_data)) + "\n")cf.write("失败总数" + str(len(error_data)) + "\n")cf.close()# 非恶意网站text_name = name + "_safe.txt"with open(text_name, "w") as f:for sd in safe_data:f.write(sd + "\n")# 恶意网站text_name = name + "_spite.txt"with open(text_name, "w") as f:for sd in spite_data:f.write(sd + "\n")# 查询失败的网站text_name = name + "_error_data.txt"with open(text_name, "w") as f:for ed in error_data:f.write(ed + "\n")if __name__ == "__main__":print (time.strftime("%H:%M:%S", time.localtime(time.time())))getAllUrl(["domain.txt", "ip.txt", "url.txt"])print (time.strftime("%H:%M:%S", time.localtime(time.time())))

这里条件筛选我根据公司需求做了修改,这个代码修修改改也就能使用了。Bitdefender的接口这个调用也是挺简单,他还有一个可以同时传多个url识别过滤的,不过我url有点多一次传不了,就还是一个一个传了。这个我只是做任务的一个工具,没有去考虑性能和时间层面。

Bitdefender 查询域名和url是否恶意相关推荐

  1. PHP检查微信域名屏蔽接口,微信域名检测API接口,实时查询域名是否被微信拦截...

    微信域名检测API接口的应用场景: 由于微信对外部链接内容规范比较严格,所以可能一不小心就会被判定为是违反内容规范的,或被同行恶意举报投诉之类的. 那么此时就要用到微信域名检测接口,实时检测域名的状态 ...

  2. 如何批量检测查询域名或者网址是否被微信屏蔽拦截

    背景 由于业务需要,需稳定可靠的微信域名拦截查询接口,但在网上谷歌百度查了好几天,都是一些付费接口,各大博客论坛GitHub也几乎是广告,后来摸索了一段时间也成功实现,现决定将代码和原理分享出来! 原 ...

  3. 微信域名拦截检测php,微信域名检测API接口,实时查询域名是否被微信拦截

    微信域名检测API接口的应用场景: 由于微信对外部链接内容规范比较严格,所以可能一不小心就会被判定为是违反内容规范的,或被同行恶意举报投诉之类的. 那么此时就要用到微信域名检测接口,实时检测域名的状态 ...

  4. 恶意url_预测URL的恶意

    恶意url In this article, we walk through developing a simple feature set representation for identifyin ...

  5. C++ 实现 ping 功能 域名(URL)解析实际 IP地址

    1.简述 一般情况下,我们想知道在当前电脑设备环境下,某一个网址能不能访问,最简单的方法是win + R 键 ,输入cmd,召唤cmd命令行程序,然后直接用ping命令 + 网址 来看返回的结果,那么 ...

  6. php 查询域名被注册,查询域名是否被注册 API 接口调用请求

    原标题:查询域名是否被注册 API 接口调用请求 查询域名是否被注册 API 接口在网上已经很多且大都封装成了 API 供别人调用,以GET/POST方式提交即可.查询域名是否被注册 API 接口可以 ...

  7. python网页批量查询_python3 批量查询域名A记录 CNAME

    场景:需要批量查询域名信息 需要生成一个 domain_in.txt的文件 文件内容格式(尾行不可有空行): baidu.com bilibili.com 代码 import random impor ...

  8. 关于DNS服务中查询域名的命令

    关于DNS服务中查询域名的命令 一.域名与DNS 二.查询DNS的命令 1.dig ①.简介 ②.格式 ③.参数 ④.实例 2. host ①.介绍 ②.格式 ③.参数 ④.实例 3.nslookup ...

  9. Linux 命令之 nslookup 命令-查询域名 DNS 信息的工具

    文章目录 介绍 常用选项 参考示例 介绍 nslookup命令的英文全称为 "query Internet name server interactively ".nslookup ...

最新文章

  1. 洛谷P3159 [CQOI2012]交换棋子
  2. ResNets王者回归!谷歌、伯克利联合发文:它当初输给EfficientNets不是架构问题...
  3. 被声明为已否决 解决方法
  4. python图形界面编程库_Python支持哪些图形界面的第三方库
  5. 消息队列之事务消息,RocketMQ 和 Kafka是如何做的?
  6. oracle拓展磁盘空间,Oracle磁盘空间使用统计
  7. 【华为云技术分享】【昇腾】ModelArts与Atlas 200 DK云端协同开发——行人检测Demo(提供完整Demo)
  8. CTF中遇到不知道文件类型_遇到孩子厌学不知道怎么沟通?做好这些策略,孩子肯定爱学...
  9. virtualbox vdi复制及移动-转
  10. yolov5的wts权重转成tensorrt的engine权重一定要注意的问题:版本匹配(有什么问题可以私信我)
  11. 豆瓣评分9.0以上,数据分析、爬虫、Python等书籍,45本包邮送到家!
  12. Pycharm装不上torch的解决办法!!!
  13. mybatis源码:mybatis的sql解析
  14. 干了十多年SAP顾问,聊聊从SAP最佳业务实践看企业管理
  15. 【泛微Ecology9.0】安装\启用非标功能
  16. win7修复计算机无法修复工具栏,win7系统任务栏假死怎么办 win7电脑任务栏假死修复方法...
  17. Dell 电脑插入耳机无声音或重启后有声音
  18. CDR插件开发之GMS插件001 - 什么是GMS插件
  19. 科创板将迎做市商机制,做市商到底是什么?
  20. Python向已有数据的Excel表写入数据

热门文章

  1. GIT命令(急速学习)
  2. 云计算与大数据---21大数据张舒
  3. JAVA面向对象的基础知识快速通过---自学笔记(一)
  4. PHp猴子偷,这些猴子成精了!偷东西偷得很萌很认真……
  5. 动态拼图怎么做?如何将多张动图拼接在一起?
  6. win10系统 如何设置定时开关机?
  7. linux升级失败无法启动应用程序,Ubuntu升级后无法启动 kernel panic - not syncing
  8. 比 996 更可怕的是职场 PUA
  9. 如何使用可编程无线SIM和Arduino MKR GSM 1400播放MP3文件
  10. Jude导出Java代码