Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
zannotate — 用于为互联网数据集添加上下文元数据的实用工具(例如,源自治系统、MaxMind GeoIP2、反向DNS和WHOIS) | Kitploit
工具/GitHubGitHub/zmap/zannotate
OSINT (开源情报)侦察网络映射信息收集威胁情报DNS 分析
GitHubzmap/zannotate

zannotate

用于为互联网数据集添加上下文元数据的实用工具(例如,源自治系统、MaxMind GeoIP2、反向DNS和WHOIS)

查看仓库
123221821天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ZAnnotate

ZAnnotate 是一个 Go 语言工具,用于为大型 IP 数据集添加网络元数据的注释。目前支持的注释器包括:

CLI 标志描述需要 API 密钥需要下载数据
--censysCensys 互联网情报(实时 API)是
--cymruCymru IP 源/对等 ASN 及 ASN 详细信息
--geoasnMaxMind GeoIP ASN 数据是
--geoip2MaxMind GeoIP2 城市和地理位置数据是
--greynoiseGreyNoise Psychic 威胁情报和 CVE 数据是(用于下载)是
--ipinfoIPInfo.io ASN 和地理位置数据是
--rdapRDAP(WHOIS 继任者)查询(实时)
--rdns反向 DNS 查询(实时)
--routing来自 MRT 路由表的 BGP/路由数据是
--spurSpur 情报(ASN、组织、基础设施分类、地理位置)是

跳转到模块设置: Censys · Cymru · GeoASN · GeoIP · GreyNoise · IPInfo.io · RDAP · RDNS/反向 DNS · 路由/BGP · Spur

你可以使用任意注释器组合,例如下面同时使用反向 DNS 和 IPInfo 注释:

echo "1.1.1.1" | zannotate --rdns --ipinfo --ipinfo-database=./data-snapshots/ipinfo_lite.mmdb
{
   "ip":"1.1.1.1",
   "ipinfo":{"country":"Australia","country_code":"AU","continent":"Oceania","continent_code":"OC","asn":"AS13335","as_name":"Cloudflare, Inc.","as_domain":"cloudflare.com"},
   "rdns":{"domain_names":["one.one.one.one"]}
}

--help 提供了更多关于每个注释器的详细信息以及可用的标志。

zannotate --help

安装

ZAnnotate 可以通过 make install 安装:

make install

或者,如果你没有安装 make,可以使用以下命令:

cd cmd/zannotate && go install

无论哪种方式,都会将 zannotate 二进制文件安装到你的 $GOPATH/bin 目录中。

检查是否正确安装:

zannotate --help

输入/输出

输入

换行分隔的 IP 地址

默认情况下,ZAnnotate 期望标准输入提供换行分隔的 IP 地址。例如:

printf "1.1.1.1\n8.8.8.8" | zannotate --rdns
{"ip":"1.1.1.1","rdns":{"domain_names":["one.one.one.one"]}}
{"ip":"8.8.8.8","rdns":{"domain_names":["dns.google"]}}

JSON

你可能希望对已经是 JSON 格式的数据进行注释。此时需要使用 --input-file-type=json 标志。这会将一个 zannotate 字段插入到现有 JSON 对象中。例如:

echo '{"ip": "1.1.1.1"}' | zannotate --rdns --geoasn --geoasn-database=/path-to-geo-asn.mmdb --input-file-type=json
{"ip":"1.1.1.1","zannotate":{"geoasn":{"asn":13335,"org":"CLOUDFLARENET"},"rdns":{"domain_names":["one.one.one.one"]}}}

如果你的 JSON 对象中 IP 地址的字段名不是默认的 ip,可以使用 --input-ip-field 标志指定。例如,如果 JSON 对象中有 ip_address 字段,可以这样使用:

echo '{"ip_address": "1.1.1.1"}' | zannotate --rdns --input-file-type=json --input-ip-field=ip_address
{"ip_address":"1.1.1.1","zannotate":{"rdns":{"domain_names":["one.one.one.one"]}}}

CSV

如果你的输入数据是 CSV 格式,可以使用 --input-file-type=csv 标志。

printf "name,ip,date\n cloudflare,1.1.1.1,04-04-26\n google,8.8.8.8,04-04-26" | zannotate --rdns --input-file-type=csv
{"name":" cloudflare","ip":"1.1.1.1","date":"04-04-26","zannotate":{"rdns":{"domain_names":["one.one.one.one"]}}}
{"name":" google","ip":"8.8.8.8","date":"04-04-26","zannotate":{"rdns":{"domain_names":["dns.google"]}}}

类似于 JSON,你可以使用 --input-ip-field 标志来指定包含 IP 地址的列,而不是默认的 ip 列。

printf "name,ip_address,date\n cloudflare,1.1.1.1,04-04-26\n google,8.8.8.8,04-04-26" | zannotate --rdns --input-file-type=csv --input-ip-field=ip_address
{"date":"04-04-26","zannotate":{"rdns":{"domain_names":["dns.google"]}},"name":" google","ip_address":"8.8.8.8"}
{"date":"04-04-26","zannotate":{"rdns":{"domain_names":["one.one.one.one"]}},"name":" cloudflare","ip_address":"1.1.1.1"}

输出

默认情况下,ZAnnotate 从标准输入读取换行分隔的 IP 地址,并将 JSON 对象逐行输出到标准输出,如下所示:

echo "1.1.1.1" | zannotate --rdns --geoasn --geoasn-database=/path-to-geo-asn.mmdb
{"ip":"1.1.1.1","geoasn":{"asn":13335,"org":"CLOUDFLARENET"},"rdns":{"domain_names":["one.one.one.one"]}}

如果某个 IP 地址因为错误或缺乏数据而无法注释,则该注释字段为空。 例如,如果 IP 地址是私有地址,因而没有 RDNS 或 ASN 数据,则输出如下:

echo "127.0.0.1" | zannotate --rdns --geoasn --geoasn-database=/path-to-geo-asn.mmdb
{"geoasn":{},"rdns":{},"ip":"127.0.0.1"}

JSON 和 CSV 输出标志

--output-annotation-field 标志可用于指定注释的字段名,而不是默认的 zannotate,同时适用于 CSV 和 JSON 文件输入。

例如,使用输出标签 --output-annotation-field="info" 并配合 JSON 输入:

printf "name,ip_address,date\n cloudflare,1.1.1.1,04-04-26\n google,8.8.8.8,04-04-26" | zannotate --rdns --input-file-type=csv --input-ip-field=ip_address --output-annotation-field="info"
{"name":" cloudflare","ip_address":"1.1.1.1","date":"04-04-26","info":{"rdns":{"domain_names":["one.one.one.one"]}}}
{"ip_address":"8.8.8.8","date":"04-04-26","info":{"rdns":{"domain_names":["dns.google"]}},"name":" google"}

模块

[!NOTE] URL 和说明可能随时间变化。以下信息截至 2026 年 5 月是准确的。

Censys

Censys 提供全球范围的主机和网络数据,包括 IP 上运行的服务、TLS 证书等信息。他们提供免费套餐,每月可进行有限次数的查询,可用于使用 Censys 数据丰富 IP 注释。

[!NOTE] 免费账户(截至 2026 年 4 月)允许单次并发请求,每月 100 次请求。 一旦用完所有额度,Censys API 将在后续请求中返回错误,直到下个月额度重置或你购买更多额度。 如果发生这种情况,ZAnnotate 将退出并报错,以避免静默错误。因此,如果你有大量数据集需要注释,请注意你的额度使用情况,并优先注释你有额度支持的 IP。 由于免费账户仅提供单次并发请求,你需要保持 --censys-threads=1,除非你付费购买了更高层级。

  1. 在 Censys.io 创建一个账户,并从个人设置 > 个人访问令牌获取个人访问令牌(PAT)。
  2. 使用 Censys 数据进行注释:
echo "8.8.8.8" | zannotate --censys --censys-pat="CENSYS_PAT_HERE"

为简洁起见,结果已截断:

{
   "ip":"8.8.8.8",
   "censys": {
      "whois":{
         "network":{ "name":"Google LLC","cidrs":["8.8.8.0/24"],"created":"2023-12-28T00:00:00Z","updated":"2023-12-28T00:00:00Z","allocation_type":"ALLOCATION","handle":"GOGL"},
         "organization":{"state":"CA","postal_code":"94043","country":"US","tech_contacts":[{"handle":"ZG39-ARIN","name":"Google LLC","email":"[email protected]"}],
            "handle":"GOGL","street":"1600 Amphitheatre Parkway","abuse_contacts":[{"handle":"ABUSE5250-ARIN","name":"Abuse","email":"[email protected]"}],
            "admin_contacts":[{"handle":"ZG39-ARIN","name":"Google LLC","email":"[email protected]"}],
            "name":"Google LLC",
            "city":"Mountain View"}},
      "services":[{
         "port":53,"protocol":"DNS","transport_protocol":"udp","ip":"8.8.8.8","scan_time":"2026-04-10T02:55:53Z"}]}}

Cymru

Cymru 提供 IP 地址的 ASN 和 BGP 对等信息。你可以使用 --cymru 标志向 Cymru 查询这些信息。 Cymru 设置了一个 DNS 服务来提供这些信息,默认情况下 ZAnnotate 将使用系统默认的 DNS 解析器进行查询。 如果你发现使用本地 DNS 解析器时出现超时,可以使用 --cymru-dns-servers 标志指定自定义解析器。 还可以使用 --cymru-threads 和 --cymru-timeout 来配置 Cymru 注释的性能,默认设置旨在获得良好性能的同时避免大多数 DNS 解析器的超时。 默认情况下,Cymru 注释器会获取源和对等 AS 以及所有 ASN 的详细信息。如果你只需要子集,可以使用以下标志: --cymru-annotate-origin-as、--cymru-annotate-peer-as 和 --cymru-annotate-as-details。

printf "1.1.1.1" | ./zannotate --cymru --cymru-dns-servers=1.1.1.1,1.0.0.1
下载工具