当前位置: 首页 > news >正文

通过微步API接口对单个IP进行查询


import requests
import json# 微步API的URL和你的API密钥
API_URL = "https://api.threatbook.cn/v3/ip/query"
API_KEY = "***"  # 替换为你的微步API密钥
def query_threatbook(ip):"""查询微步API接口,判断IP是否为可疑"""# 构造请求参数params = {"apikey": API_KEY,"resource": ip,  # 查询的目标IP"lang": "zh",    # 语言设置为中文}try:# 发送GET请求response = requests.get(API_URL, params=params)response.raise_for_status()  # 检查请求是否成功result = response.json()  # 解析返回的JSON数据return resultexcept requests.exceptions.RequestException as e:print(f"请求微步API失败: {e}")return Nonedef summarize_result(result, ip):"""根据API返回结果总结是否为可疑IP"""if not result:print("API返回结果为空,请检查API密钥和网络连接。")return# 检查API响应结构if "data" not in result:print("API响应中缺少 'data' 字段,请检查API接口或输入的IP地址。")returndata = result["data"]ip_info = data.get(ip, {})# 提取威胁情报和标签信息judgments = ip_info.get("judgments", [])  # 威胁标签intelligences = ip_info.get("intelligences", {}).get("threatbook_lab", [])  # 情报信息basic_info = ip_info.get("basic", {})  # 基础信息(如运营商、地理位置)ports = ip_info.get("ports", [])  # 开放端口信息# 展示基础信息print("\n🔍 IP 基础信息:")if basic_info:carrier = basic_info.get("carrier", "未知")location = basic_info.get("location", {})country = location.get("country", "未知")province = location.get("province", "未知")city = location.get("city", "未知")print(f"  - 运营商: {carrier}")print(f"  - 地理位置: {country} {province} {city}")else:print("  - 无基础信息")# 展示威胁标签print("\n⚠️ 威胁标签:")if judgments:for tag in judgments:print(f"  - {tag}")else:print("  - 无威胁标签")# 展示详细情报信息print("\n🔍 详细情报信息:")if intelligences:for intel in intelligences:source = intel.get("source", "未知")confidence = intel.get("confidence", "未知")expired = "已过期" if intel.get("expired") else "未过期"intel_types = ", ".join(intel.get("intel_types", []))print(f"  - 来源: {source}, 置信度: {confidence}, 状态: {expired}, 类型: {intel_types}")else:print("  - 无详细情报信息")# 展示开放端口信息print("\n🔍 开放端口信息:")if ports:for port_info in ports:port = port_info.get("port", "未知")module = port_info.get("module", "未知")print(f"  - 端口: {port}, 协议: {module}")else:print("  - 无开放端口信息")# 安全性总结print("\n✅ 安全性总结:")if judgments:print(f"  - 该IP被标记为 **可疑**,威胁标签包括: {', '.join(judgments)}")else:print(f"  - 该IP **未被标记为可疑**,暂未发现威胁标签。")def main():"""主函数,查询用户输入的IP是否为可疑"""# 用户输入ip = input("请输入要查询的IP地址: ").strip()# 查询微步APIresult = query_threatbook(ip)# 总结并展示结果if result:summarize_result(result, ip)else:print("查询失败,请检查API密钥和网络连接。")if __name__ == "__main__":main()

通过微步API接口对单个IP进行查询效果,其实还可以弄成批量的。我发现反复查询同一个IP,查一次算一次,所以得注意,批量我也测试了,好用,就是费钱。

相关文章:

通过微步API接口对单个IP进行查询

import requests import json# 微步API的URL和你的API密钥 API_URL "https://api.threatbook.cn/v3/ip/query" API_KEY "***" # 替换为你的微步API密钥 def query_threatbook(ip):"""查询微步API接口,判断IP是否为可疑"…...

LLM实践——DeepSeek技术报告学习(含实现逻辑梳理)

目录 一些基本概念:deepseek-r1-zerodeepseek-R1deepseek-R1 distill model: DeepSeek官网:https://www.deepseek.com/ 一些基本概念: post-training:旨在优化预训练模型的特定能力,包括‌任务适配性、安…...

Autojs无线连接vscode方法

1.获得电脑的IP 在电脑的CMD界面输入 ipconfig 然后找到ipv4的那一行,后面的即是你的电脑IP地址 2.打开vscode的autojs服务 安装autojs插件 在vscode界面按下ctrlshiftp 输入autojs 找到 点击 之后打开手机上的autojs 之后输入刚刚电脑上的地址 可以看到vsc…...

第一节:基于Winform框架的串口助手小项目---基础控件使用《C#编程》

本人于2025年3月2号学习C#编程,要学会一门编程语言,一定要有一个或多个项目的经验才能对着这门语言有深入的了解,为了深入了解和记录学习C#的学习过程,此文章作为足迹以此记录,为后期巩固学习以及参考奠定基础。内容涉…...

小红书湖仓架构的跃迁之路

作者:李鹏霖(丁典),小红书-研发工程师,StarRocks Contributor & Apache Impala Committer 本文整理自小红书工程师在 StarRocks 年度峰会上的分享,介绍了小红书自助分析平台中,StarRocks 与 Iceberg 结合后&#x…...

pytorch高可用的设计策略和集成放大各自功能

在使用 PyTorch 编写模型时,为确保模型具备高可用性,可从模型设计、代码质量、训练过程、部署等多个方面采取相应的方法,以下为你详细介绍: 模型设计层面 模块化设计 实现方式:将模型拆分成多个小的、独立的模块,每个模块负责特定的功能。例如,在一个图像分类模型中,可…...

神经网络前向微分和后向微分区别

1. 计算顺序 前向微分(前向模式) 从输入到输出逐层计算:沿计算图的正向顺序(输入层 → 输出层),同时计算函数值和导数。 每一步同步更新导数:每个中间变量的导数随值一起计算,例如&…...

Android 创建一个全局通用的ViewModel

(推荐)使用ViewModelStore 代码示例: class MyApplication : Application(), ViewModelStoreOwner {private val mViewModelStore ViewModelStore()override fun onCreate() {super.onCreate()}override val viewModelStore: ViewModelSto…...

windows 利用nvm 管理node.js 2025最新版

1.首先在下载nvm 下载链接 2. 下载最新版本的nvm 3. 同意协议 注意:选择安装路径 之后一直下一步即可 可以取消勾选 open with Powershell 勾选后它会自动打开Powershell 这里选用cmd 输入以下命令查看是否安装成功 nvm version 查看已经安装的版本 我之前自…...

基于物联网技术的电动车防盗系统设计(论文+源码)

1总体设计 本课题为基于物联网技术的电动车防盗系统,在此将整个系统架构设计如图2.1所示,其采用STM32F103单片机为控制器,通过NEO-6M实现GPS定位功能,通过红外传感器检测电瓶是否离开位,通过Air202 NBIOT模块将当前的数…...

run方法执行过程分析

文章目录 run方法核心流程SpringApplicationRunListener监听器监听器的配置与加载SpringApplicationRunListener源码解析实现类EventPublishingRunListener 初始化ApplicationArguments初始化ConfigurableEnvironment获取或创建环境配置环境 打印BannerSpring应用上下文的创建S…...

关联封号率降70%!2025最新IP隔离方案实操手册

高效运营安全防护,跨境卖家必看的风险规避指南 跨境账号管理的核心挑战:关联封号风险激增 2024年,随着全球电商平台对账号合规的审查日益严苛,“关联封号”已成为跨境卖家最头疼的问题之一。无论是同一IP登录多账号、员工操作失误…...

LeetCode 解题思路 10(Hot 100)

解题思路: 上边: 从左到右遍历顶行,完成后上边界下移(top)。右边: 从上到下遍历右列,完成后右边界左移(right–)。下边: 从右到左遍历底行,完成后…...

ASP.NET Core JWT认证与授权

1.JWT结构 JSON Web Token(JWT)是一种用于在网络应用之间安全传输声明的开放标准(RFC 7519)。它通常由三部分组成,以紧凑的字符串形式表示,在身份验证、信息交换等场景中广泛应用。 2.JWT权限认证 2.1添…...

城市地质安全专题连载⑧ | 强化工程地质安全保障力度,为工程项目全栈护航

作者 | 徐海洋、孙美琴 在城市化进程日益加速的今天,城市地质安全问题日益凸显,成为制约城市可持续发展的关键因素之一。从隧道掘进中的突发灾害,到高层建筑地基的稳定性挑战,再到城市地下空间的开发利用风险,地质安全…...

50.xilinx fir滤波器系数重加载如何控制

, 注意:matlab量化后的滤波器系数为有符号数,它是以补码形式存储的,手动计算验证时注意转换为负数对应数值进行计算。...

低代码平台的后端架构设计与核心技术解析

引言:低代码如何颠覆传统后端开发? 在传统开发模式下,一个简单用户管理系统的后端开发需要: 3天数据库设计5天REST API开发2天权限模块对接50个易出错的代码文件 而现代低代码平台通过可视化建模自动化生成,可将开发…...

QT实现单个控制点在曲线上的贝塞尔曲线

最终效果: 一共三个文件 main.cpp #include <QApplication> #include "SplineBoard.h" int main(int argc,char** argv) {QApplication a(argc, argv);SplineBoard b;b.setWindowTitle("标准的贝塞尔曲线");b.show();SplineBoard b2(0.0001);b2.sh…...

svn 通过127.0.01能访问 但通过公网IP不能访问,这是什么原因?

连接失败的提示如下 1、SVN的启动方法 方法一&#xff1a; svnserve -d -r /mnt/svn 方法二&#xff1a; svnserve -d --listen-port 3690 -r /mnt/svn 方法三&#xff1a; svnserve -d -r /mnt/svn --listen-host 0.0.0.0 2、首先检查svn服务器是否启动 方法一&#x…...

‌学习DeepSeek V3 与 R1 核心区别(按功能维度分类)

‌一、定位与架构‌ ‌V3&#xff08;通用型模型&#xff09;‌ 定位&#xff1a;多模态通用大模型&#xff0c;擅长文本生成、多语言翻译、智能客服等多样化任务‌12。架构&#xff1a;混合专家&#xff08;MoE&#xff09;架构&#xff0c;总参数 ‌6710 亿‌&#xff0c;每次…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...