首页 > 解决方案 > 使用 python 检查 API 密钥配额使用情况

问题描述

我一直在使用 Python 通过我的公共 api 密钥访问 VirusTotal 上的数据。

我想知道是否可以使用 Python 查看配额使用情况。我知道我可以通过登录到我的 VirusTotal 帐户来查看数据,但是如果我可以在运行我的脚本时看到使用情况,那将更容易跟踪。

标签: pythonapi-key

解决方案


您正在寻找的可能是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 函数curlsystem.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>\'')

...到您的脚本(注意添加的反斜杠转义了内部引号。)


推荐阅读