ipverse/as-metadata

GitHub: ipverse/as-metadata

提供全球已分配 ASN 的完整元数据集,支持离线查询 ASN 与组织、国家及网络拓扑关系的映射。

Stars: 85 | Forks: 17

# as-metadata (原名 asn-info) ## 🔍 在线体验 在 **[Lens by ipverse](https://lens.ipverse.net)** 交互式探索 AS 元数据 —— 无需下载任何内容即可搜索 IP 地址、前缀和自治系统。 ## 概述 包含所有已分配 ASN (自治系统号) 的自治系统元数据综合数据集。 包括来自区域互联网注册管理机构 (RIR) 的句柄、组织名称和国家/地区代码。 当源数据发生变化时自动更新(每日检查)。 非常适合离线查询、网络分析、威胁情报或任何需要将 ASN 映射到组织的项目 —— 无 API 速率限制,无外部依赖。 ## 更新说明 - **2026-03-04**: 添加了 `metadata.lastModified` 和 `stats.prefixesLastModified` 变更跟踪时间戳;所有时间戳字段现在仅使用日期格式 (`yyyy-MM-dd`) 以减小文件大小 - **2026-02-08**: 在 AS 元数据中添加了 `category` (例如 `isp`, `hosting`, `government_admin`) 和 `networkRole` (例如 `tier1_transit`, `stub`) 字段 - **2026-01-27**: 添加了 `providerAsns` 字段,包含上游传输提供商 ASN 列表 - **2026-01-18**: **破坏性变更:** 用 `providers`/`customers`/`peers` 替换了 `upstreams`/`downstreams`,以准确区分传输关系和对等互联。添加了 `degree` 和 `reach` 字段。 - **2026-01-08**: 添加了 `registered` 字段 (RIR 注册日期)、`stats` 部分 (前缀和连接统计数据),并将 `lastAnnounced` 移至顶层。 - **2026-01-03**: 仓库重命名为 `as-metadata`,CSV 格式更改为 4 列 (添加了 country-code),添加了 JSON 格式。 - **2025-08-03**: 移除了主观的句柄清理,并移除了描述周围的引号以提高 RFC4180 合规性 - **2023-09-03**: 从 description 字段中移除了 PEM 证书 ## 可用格式 JSON (~55-60 MB) 和 CSV (~6 MB) **JSON 格式:** ``` [ { "asn": 4711, "metadata": { "handle": "INTEC", "description": "INTEC Inc.", "countryCode": "JP", "country": "Japan", "origin": "authoritative", "category": "business", "networkRole": "stub", "registered": "1997-03-14", "lastModified": "2026-03-01" }, "stats": { "ipv4": { "prefixes": 12, "prefixesAggregated": 8, "largestPrefix": 20 }, "ipv6": { "prefixes": 3, "prefixesAggregated": 2, "largestPrefix": 32 }, "connectivity": { "providers": 2, "providerAsns": [174, 3356], "customers": 5, "peers": 3, "degree": 10, "reach": 12 }, "prefixesLastModified": "2026-03-04" }, "lastAnnounced": "2026-01-04" }, { "asn": 4712, "metadata": { "handle": "JT-NET", "description": "JAPAN TOBACCO INC.", "countryCode": "JP", "country": "Japan", "origin": "authoritative", "category": null, "networkRole": null, "registered": "1997-03-14", "lastModified": null }, "stats": null, "lastAnnounced": null } ] ``` **CSV 格式:** ``` asn,handle,description,country-code 0,IANA-RSVD-0,Internet Assigned Numbers Authority,US 1,LVLT-1,Level 3 Parent LLC,US 2,UDEL-DCN,University of Delaware,US 3,MIT-GATEWAYS,Massachusetts Institute of Technology,US 4,ISI-AS,University of Southern California,US 5,SYMBOLICS,WFA Group LLC,US 6,BULL-HN,ATOS IT Solutions and Services Inc.,US 7,DSTL,The Defence Science and Technology Laboratory,GB . . . ``` ## 字段描述 ### CSV 字段 | 字段 | 描述 | |---|---| | `asn` | 自治系统号 | | `handle` | 注册局句柄/标识符 | | `description` | 组织名称或描述 | | `country-code` | ISO 3166-1 alpha-2 国家/地区代码 (如未知则为 `XX`) | ### JSON 字段 | 字段 | 描述 | |---|---| | `asn` | 自治系统号 | | `metadata.handle` | 注册局句柄/标识符 | | `metadata.description` | 组织名称或描述 | | `metadata.countryCode` | ISO 3166-1 alpha-2 国家/地区代码 | | `metadata.country` | 完整国家/地区名称 | | `metadata.origin` | 元数据来源 (参见 [origin 值](#origin-values)) | | `metadata.category` | AS 分类;如未分类则为 `null` (参见 [AS 类别和网络角色](#as-category-and-network-role)) | | `metadata.networkRole` | 网络角色;如未知则为 `null` (参见 [AS 类别和网络角色](#as-category-and-network-role)) | | `metadata.registered` | RIR 注册日期 (`yyyy-MM-dd`);对于推断的 ASN 为 `null` | | `metadata.lastModified` | 任何元数据字段最后一次更改的日期 (`yyyy-MM-dd`) (包括 RIR 数据、类别、网络角色等);如从未通告则为 `null` | | `stats` | 前缀和连接统计数据;对于没有路由采集器数据的 ASN 为 `null` | | `stats.ipv4.prefixes` | 通告的 IPv4 前缀数量 | | `stats.ipv4.prefixesAggregated` | 聚合后的 IPv4 前缀数量 | | `stats.ipv4.largestPrefix` | 通告的最大 IPv4 前缀 (例如 `/13` — 数字越小 = 地址块越大) | | `stats.ipv6.prefixes` | 通告的 IPv6 前缀数量 | | `stats.ipv6.prefixesAggregated` | 聚合后的 IPv6 前缀数量 | | `stats.ipv6.largestPrefix` | 通告的最大 IPv6 前缀 (例如 `/29` — 数字越小 = 地址块越大) | | `stats.connectivity.providers` | 传输提供商 ASN 数量 | | `stats.connectivity.providerAsns` | 传输提供商 ASN 列表 (支持上游质量分析) | | `stats.connectivity.customers` | 传输客户 ASN 数量 | | `stats.connectivity.peers` | 免费对等互联 ASN 数量 | | `stats.connectivity.degree` | 唯一邻居 ASN 总数 (providers + customers + peers) | | `stats.connectivity.reach` | 客户锥规模 (可通过客户关系到达的 ASN) | | `stats.prefixesLastModified` | 通告前缀最后一次更改的日期 (`yyyy-MM-dd`);仅当 `stats` 非 null 时存在 | | `lastAnnounced` | AS 最后一次被看到通告前缀的日期 (`yyyy-MM-dd`);如从未被看到则为 `null` | ### Origin 值 | 值 | 描述 | |---|---| | `authoritative` | 来自权威来源 | | `inferred` | 从路由信息推断;可能不准确 | | `overlaid` | 应用了来自 [as-overlay](https://github.com/ipverse/as-overlay) 的元数据覆盖 | | `none` | 无可用元数据 | ## AS 类别和网络角色 ### 类别 对自治系统的主要功能进行分类。 | 值 | 描述 | |---|---| | `isp` | 互联网服务提供商 (宽带、DSL、电缆、光纤、移动) | | `hosting` | 托管、云或内容提供商 | | `business` | 企业或非营利组织 | | `education_research` | 教育或研究机构 | | `government_admin` | 政府实体或公共行政机构 | 未分类时为 `null`。 分类基于多种信号,反映了 AS 的 *主要* 功能。它并不总是正确的 —— 许多网络难以清晰分类 (例如,一家同时也开展托管业务的 ISP,或者拥有自己传输基础设施的大学)。将其视为一个有用的默认值,而非绝对真理。未来可能会添加用于用户提供更正的覆盖机制。 ### 网络角色 基于 BGP 拓扑描述自治系统的连接角色。 | 值 | 描述 | |---|---| | `tier1_transit` | 具有免费全球可达性的 Tier 1 传输提供商 | | `major_transit` | 主要传输提供商 | | `midsize_transit` | 中型传输提供商 | | `access_provider` | 接入或终端用户网络 | | `content_network` | 内容分发网络 | | `stub` | 没有传输客户的 Stub AS | 未知时为 `null`。 角色分配基于 BGP 连接指标和主观阈值。对于究竟在何处划分“主要”和“中型”传输之间的界限,或者网络何时不再是 stub,理性的人可能会有不同看法。 ## 如何使用 直接下载数据: **JSON:** ``` curl -O https://raw.githubusercontent.com/ipverse/as-metadata/master/as.json ``` **CSV:** ``` curl -O https://raw.githubusercontent.com/ipverse/as-metadata/master/as.csv ``` 如果你喜欢,也可以直接克隆仓库。 **快速示例 (Python):** ``` import json with open('as.json') as f: data = {entry['asn']: entry for entry in json.load(f)} print(data[4711]['metadata']['description']) # INTEC Inc. ``` ## 使用场景 - 找出 ASN 的所有者 - 丰富你的 IP 情报工具 - 威胁搜索和安全研究 - BGP 分析和网络研究 - 构建仪表板或监控工具 - 离线查询 (无需处理 API 速率限制) - 几乎任何需要将 ASN 映射到运营商的场景 ## 相关项目 - **[as-overlay](https://github.com/ipverse/as-overlay)**: 自治系统元数据覆盖,用于补充和增强本仓库中的权威数据。当应用覆盖数据时,JSON 格式中的条目将具有 `overlaid` 的 `origin` 值。 ## 疑问或问题? 如果你有疑问、问题或建议,请前往 [反馈仓库](https://github.com/ipverse/feedback)。 ## 许可证 本数据根据 [CC0 1.0 Universal](LICENSE) 发布。
标签:ASN元数据, ASN数据, CSV, ESC4, GitHub, Homebrew安装, IPVERSE, IP地址库, JSON, OSINT, RIR数据, 上游运营商, 代码示例, 基础设施, 威胁情报, 开发者工具, 数据分析, 流量捕获, 离线查询, 系统分析, 网络分析, 网络安全, 网络拓扑, 网络角色, 自治系统, 隐私保护