python - 使用 python 检查 API 密钥配额使用情况
问题描述
我一直在使用 Python 通过我的公共 api 密钥访问 VirusTotal 上的数据。
我想知道是否可以使用 Python 查看配额使用情况。我知道我可以通过登录到我的 VirusTotal 帐户来查看数据,但是如果我可以在运行我的脚本时看到使用情况,那将更容易跟踪。
解决方案
您正在寻找的可能是user-api-usage端点。
根据链接的 api-docs,JSON
返回的对象具有以下格式:
{
"data": {
"daily": {
"2020-08-10": {
"urls": 2
},
"2020-08-11": {
"domains": 1,
"file_relationships": 1,
"files": 1
},
"2020-08-12": {
"analyses": 25,
"file_analyse": 3,
"files": 6
},
"2020-08-17": {
"urls": 3
},
"2020-08-18": {
"urls": 1
},
"2020-08-20": {
"file_download": 36,
"file_relationships": 5,
"files": 1
},
"2020-08-21": {
"file_analyse": 1,
"file_download": 92,
"files": 1
},
"2020-08-23": {
"analyses": 5,
"file_analyse": 1
},
"2020-08-25": {
"file_download": 51
},
"2020-08-26": {
"file_download": 51
},
"2020-08-28": {
"file_download": 14
},
"2020-08-31": {
"file_download": 6
},
"2020-09-01": {
"file_download": 81
},
"2020-09-02": {
"file_relationships": 5,
"graphs": 1
},
"2020-09-03": {
"file_relationships": 6,
"graph_comments": 1,
"graph_items": 3,
"graphs": 2,
"retrohunt_jobs": 2
},
{
...
}
},
"total": {
"analyses": 30,
"comment_relationships": 1,
"comments": 4,
"domain_comments": 1,
"domain_graphs": 2,
"domain_relationships": 2,
"domains": 1,
"file_analyse": 6,
"file_behaviours": 6,
"file_download": 331,
"file_relationships": 19,
"files": 9,
"graph_comments": 2,
"graph_items": 3,
"graphs": 8,
"intelligence_search": 5,
"resolutions": 1,
"retrohunt_jobs": 2,
"search": 6,
"statistics": 1,
"submissions": 1,
"url_relationships": 1,
"urls": 8
}
}
}
这为您提供了按日期细分和流/文件底部的“总计”节点。
文档推荐的命令如下:
curl --request GET \
--url https://www.virustotal.com/api/v3/users/{id}/api_usage \
--header 'x-apikey: <your API key>'
同样,此信息的来源已在上面链接。
编辑:
通常用于运行 shell 命令的 python 函数curl
是system.os()
函数。对此还有其他(甚至可能更好)的解决方案,但这超出了此答案的范围。要在您的脚本中使用它,您需要添加:
/usr/bin/env python
import system
...
system.os('curl --request GET --url https://www.virustotal.com/api/v3/users/{id}/api_usage --header \'x-apikey: <your API key>\'')
...到您的脚本(注意添加的反斜杠转义了内部引号。)
推荐阅读
- android - 使用 DrawerLayout 时,Activity 会显示一个带有“android...DrawerLayout”且没有内容的绿屏
- python - 计算数据框中两列中作为相反对存在的唯一值的数量?
- firebase - Dart 错误:未处理的异常:E/flutter(5079):无效参数:'Future 实例
' - delphi - 清除 TEdit 控制 rad studio delphi
- c# - 我有一个场景,应用程序将在没有 UI 的后台运行或在前台运行 UI。我根据收到的论据做出决定
- tfs - Visual Studio 2017 Team Foundation 服务器关于检查谁在处理哪些文件的问题
- java - JSF/Spring Security - 添加额外的登录字段不会调用自定义过滤器
- python - Pymongo 的 PyInstaller 问题
- c# - 如何在 ASP.NET MVC 中使用表单上传图像
- audio - 如何使用 ffmpeg 从 5.1 视频中获取分离的音频通道?