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数据, 上游运营商, 代码示例, 基础设施, 威胁情报, 开发者工具, 数据分析, 流量捕获, 离线查询, 系统分析, 网络分析, 网络安全, 网络拓扑, 网络角色, 自治系统, 隐私保护