当前位置:首页 > 技术分析 > 正文内容

python为木云DNS添加黑名单URL地址

ruisui8823小时前技术分析2

木云DNS有个让人很舒服的功能,可以对一些钓鱼网站、垃圾邮件等之类的网站解析到特定的地址来实现DNS层面对网络的防护,用户也可以自定义URL库以弥补系统库的收集不足。

今天在维护DNS时发现居然开放了API接口,以早应开发了,一直没有看过,今天有时间看了一下API文档,现在就开放了两个接口,获取威胁库列表和设置威助数据。说干就干,先设置API联动接口。

接口生成之后会给一个APPID各APPKEY,平台接口调用地址为:

http 协议://系统地址:系统端口/dns/api/,分共参数有四个分别是appid,action,timestamp,sign.

sign根据appid,action,timestamp,app_key进行m5算法进行签名。

获取威胁库名

请求参数:{"api_id": 3, "timestamp": 1650870098, "sign": "
cd41a379c1be52631f6036d20bcf0ddf", "action": "getTiBuckets"}


返回结果:

{"code": 0, "msg": "success", datas:[{“id”: 57, “name”:”钓鱼网站”}, {“id”: 58, “name”:”恶意软件”}, {“id”: 59,

“name”:”矿池”}]}

添加威胁数据

请求参数:

{"api_id": 3, "timestamp": 1650870098, "sign": "cd41a379c1be52631f6036d20bcf0ddf", "action": "setTiData",

"bucket_id": 3, "datas": ["192.168.3.88", "192.168.0.1"]}

根所以上内容开始进行脚本编写:

#!/usr/local/python3/bin/python3

# -*- coding: utf-8 -*-

import requests

import json

import hashlib

import time

import warnings

from urllib3.exceptions import InsecureRequestWarning

import argparse

def set_signature(appid,api_key,timestamp,action):

sign=hashlib.md5(str(appid).encode('utf-8')+api_key.encode('utf-8')+action.encode('utf-8')+str(timestamp).encode('utf-8')).hexdigest()

return sign

def operation_dns(appid,api_key,timestamp,action,**kwargs):


headers = {'Content-Type': 'application/json'}

url=""

sign=set_signature(appid,api_key,timestamp,action)

data={"api_id":appid,"timestamp":timestamp,"sign":sign,"action":action}

if action=="setTiData":

data.update({"bucket_id":kwargs.get("bucket_id"),"datas":kwargs.get("datas")})

with warnings.catch_warnings():

warnings.simplefilter("ignore",InsecureRequestWarning)

respose=requests.post(url=url,headers=headers,json=data,verify=False)

if respose.status_code==200:

res=respose.json()

print(res.get("msg"))

if __name__ == '__main__':


print("This is a test file for DNS resolution")

appid=2

api_key=""

url=""

timestame=time.time()


operation_dns(appid,api_key,timestame,action="getTiBuckets")


#operation_dns(appid,api_key,timestame,action="setTiData",bucket_id=1,datas=["abc.com"])

parser=argparse.ArgumentParser()

group=parser.add_mutually_exclusive_group()

group.add_argument("-f","--file",help="请输入完整的文件路径")

group.add_argument("-u","--url",help="请输入域名")

args=parser.parse_args()

if args.file:

with open(args.file,"r") as f:

blackurllist=[s.strip() for s in f.readlines()]

print(blackurllist)

#operation_dns(appid,api_key,timestame,action="setTiData",bucket_id=1,datas=blackurllist)

elif args.url:

datas=[args.url.strip()]

operation_dns(appid,api_key,timestame,action="setTiData",bucket_id=1,datas=[args.url.strip()])

测试可以正常添加威肋库,以后收集到URL名单,再添加时不需要再登录系统,一个脚本即可完成

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4689.html

标签: kwargs.get
分享给朋友:

“python为木云DNS添加黑名单URL地址” 的相关文章

「图解」父子组件通过 props 进行数据交互的方法

1.组件化开发,经常有这样的一个场景,就是父组件通过 Ajax 获取数据,传递给子组件,如何通过 props 进行数据交互来实现,便是本图解的重点。2.代码的结构3.具体代码 ①在父组件 data 中存放数据 ms。 ②将父组件 data 中的数据 ms 绑定到子组件中的属性 ms。 ③子组件在 p...

7 招教你轻松搭建以图搜图系统

作者 | 小龙责编 | 胡巍巍当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。Milvus 作为一款针对海量特征向量的相似性检索引擎,旨在...

《暗黑破坏神 2:重制版》PC 版 2.3 版本发布,支持英伟达 DLSS

IT之家 12 月 3 日消息,暴雪为《暗黑破坏神 2:重制版》PC 版发布了更新 2.3 版本,添加了“离线难度缩放”滑块(玩家可以在单人游戏时增加挑战和奖励的级别)、多项辅助功能和用户界面改进,以及英伟达 DLSS 支持。玩法改进:玩家现在可以在离线游戏的选项菜单中使用“游戏难度等级”,它提供与...

关于Vue页面跳转传参,参数不同, 但页面只获取参数一次的问题

#头条创作挑战赛#1.问题描述问题描述: element 展示表格(页面A),点击表格的每一行的查看详情按钮,可以携带此行的信息参数跳转到另一个页面(页面B),但是从A页面到B页面,只有第一次跳转的时候B页面可以获取到A页面的参数,返回再次A->B ,B页面无法获取到参数。2.解决办法:方法一...

Vue实战篇|使用路由管理用户权限(动态路由)

权限控制是后台管理系统比较常见的需求,如果我们需要对某些页面的添加权限控制的话,那我们可以在路由管理中的权限做一些校验,没有通过权限校验的给出相应的提示或者直接跳转到报错页面。跟着我一起来学vue实战篇路由管理权限吧!权限校验函数getCurrentAuthority()函数用于获取当前用户权限,一...

首批龙芯3A6000电脑规模化应用:内置QQ、微信主流软件

6月18日消息,今日,龙芯中科宣布,近千台龙芯3A6000电脑走进福建福州某区各科室并服务于具体工作开展。据介绍,该批电脑为实现首批规模化应用的3A6000整机产品,搭载国产操作系统,内置主流办公和即时通讯等软件,可充分满足打印机利旧要求(兼容原有打印机设备)。3A6000根据官方晒出的桌面截图显示...