#virus-total #api-bindings #v3 #api #user-group

vt3

病毒总览REST API v3(公共与企业版)

18个版本

0.7.3 2024年4月12日
0.7.2 2023年5月7日
0.7.1 2021年6月20日
0.6.0 2021年6月20日
0.3.7 2021年6月14日

Web编程 中排名 244

自定义许可

100KB
2K SLoC

病毒总览Api v3(公共与企业版)

Crates.io Documentation docs.rs Build Status GitHub license

VT3提供了一种简单的API接口,用于使用病毒总览v3 REST端点,包括仅适用于病毒总览企业版的端点。以下为可用API列表

  • 公共API
    • IP
      • 获取IP信息
      • 获取评论
      • 添加评论
      • 列出投票
      • 添加投票
      • 列出与IP相关的ID/对象
    • 域名
      • 获取域名信息
    • 文件
      • 获取文件信息
      • 上传文件进行扫描
      • 文件重新扫描
    • URL
      • 获取URL信息
      • 通过ID获取URL信息
      • URL扫描
      • URL重新扫描
  • 企业版 - features = ["enterprise"]
    • 用户与组
      • 获取用户信息
      • 删除用户
      • API使用
      • 整体配额
      • 获取组信息
      • 获取所有组成员
      • 获取组API使用情况
  • 狩猎(企业版) - features = ["hunting"]
    • 实时狩猎
      • 获取实时狩猎规则集
      • 通过规则集ID获取规则集
      • 创建规则集
      • 删除规则集
      • 更新规则集
    • 回溯狩猎
      • 获取回溯狩猎作业
      • 通过作业ID获取回溯狩猎作业
      • 创建回溯狩猎作业
      • 删除回溯狩猎作业
      • 中止回溯狩猎作业
  • 订阅源(企业版) - features = ["feeds"]
    • 文件订阅源
      • 获取文件订阅源批量
      • 获取文件行为订阅源批量
      • 获取每小时文件订阅源批量
      • 获取每小时文件行为订阅源批量
    • URL订阅源
      • 获取URL订阅源批量
      • 获取每小时URL订阅源批量

可用的 feature 标志

  • enterprise
  • feeds
  • hunting

使用

  • Cargo.toml
[dependencies]
vt3 = "0.7.2"
  • 以启用企业功能
[dependencies]
vt3 = { version = "0.7.2", features = ["enterprise"] }
  • 然后:获取 ip information
use vt3::VtClient;

fn main() {
    let api_key = match std::env::args()
        .skip(1)
        .next()
        .ok_or_else(|| "Please provide the api key!")
    {
        Ok(api_key) => api_key,
        Err(e) => {
            println!("{:?}", e);
            std::process::exit(1)
        }
    };
    let ip_address = "5.2.69.42";

    let res = VtClient::new(&api_key).ip_info(ip_address);
    match res {
        Ok(report) => println!("{:#?}", report),
        Err(e) => println!("Error: {}", e.to_string()),
    }
}
  • 为客户端提供 user agent
use vt3::VtClient;

fn main() {
    let api_key = match std::env::args()
        .skip(1)
        .next()
        .ok_or_else(|| "Please provide the api key!")
    {
        Ok(api_key) => api_key,
        Err(e) => {
            println!("{:?}", e);
            std::process::exit(1)
        }
    };
    let ip_address = "5.2.69.42";

    let res = VtClient::new(&api_key)
        .user_agent("Chrome for Windows")
        .ip_info(ip_address);
    match res {
        Ok(report) => println!("{:#?}", report),
        Err(e) => println!("Error: {}", e.to_string()),
    }
}

示例

要运行示例 - 通用API端点

  • 域名信息:cargo run --example domain_info <your_api_key>
  • IP信息:cargo run --example ip_info <your_api_key>
  • URL信息:cargo run --example url_info <your_api_key>
  • 通过ID获取URL信息:cargo run --example url_info_by_id <your_api_key>
  • URL重新扫描:cargo run --example url_rescan <your_api_key>
  • 文件信息:cargo run --example file_info <your_api_key>
  • 文件扫描:cargo run --example file_scan <your_api_key>
  • 文件重新扫描:cargo run --example file_rescan <your_api_key>
  • 获取最新评论:cargo run --example get_latest_comments <your_api_key>
  • 通过ID获取评论:cargo run --example get_comment <your_api_key>

运行示例 - 企业API端点

  • 获取用户信息:cargo run --example user_info --features="enterprise" <your_api_key> <user_id>
  • 删除用户:cargo run --example delete_user --features="enterprise" <your_api_key> <user_id>
  • 获取API使用信息:cargo run --example api_usage --features="enterprise" <your_api_key> <user_id>
  • 获取用户的总体配额:cargo run --example overall_quotas --features="enterprise" <your_api_key> <user_id>
  • 获取组信息:cargo run --example group_info --features="enterprise" <your_api_key> <group_id>
  • 获取组的API使用:cargo run --example group_api_usage --features="enterprise" <your_api_key> <group_id>
  • 获取组成员:cargo run --example group_members --features="enterprise" <your_api_key> <group_id>

运行示例 - Hunting API 端点

  • 获取Livehunt规则集:cargo run --example livehunt_get_rulesets --features="hunting" <your_api_key>
  • 获取Retrohunt作业:cargo run --example retrohunt_jobs --features="hunting" <your_api_key>

VT开发者参考


许可:MIT

依赖项

~4–15MB
~215K SLoC