NakuTenshi/ASNinformer
GitHub: NakuTenshi/ASNinformer
ASNinformer 是一个轻量级 Python 命令行工具,用于批量查询 IP 或 ASN 的归属信息并按 ASN 分组输出 JSON 文件。
Stars: 1 | Forks: 0
# ASNinformer
**ASNinformer** 是一个简单的 Python 脚本,它接受 IP 地址或 ASN 作为输入,通过 `ip2asn.ipinfo.app` 和 `asn.ipinfo.app` 查询其 ASN(自治系统号)信息,按 ASN 对 IP 进行分组,并将结果保存为 JSON 文件。
它旨在与 **stdin (piping)** 或直接通过命令行参数配合使用。
## 功能
- 接受来自以下方式的输入:
- 标准输入 (`stdin`)
- 命令行参数
- **IP 到 ASN 查询** - 通过 `ip2asn.ipinfo.app` 查询 IP 到 ASN 的信息
- **ASN 到详细信息查询** - 通过 `asn.ipinfo.app` 查询 ASN 的详细信息(公司名称、IP 范围)
- 自动按 ASN 对 IP 进行分组
- 以 JSON 格式保存结果
- 可选的代理支持
- 使用简单的基于正则表达式的 IPv4 验证器
- 支持 ASN 输入(例如,`AS13335`)
## 安装说明 克隆仓库: ``` git clone https://github.com/NakuTenshi/ASNinformer.git cd ASNinformer ``` 使脚本可执行: ``` chmod +x ASNinformer.py ``` 然后安装脚本: ``` ./install ``` ## 用法 ### 1️⃣ 使用 stdin(推荐) ``` echo 1.1.1.1 | ASNinformer ``` ``` cat ips.txt | ASNinformer ``` `ips.txt` 示例: ``` 1.1.1.1 8.8.8.8 9.9.9.9 ``` ### 2️⃣ 将 IP 作为参数传递 ``` ASNinformer 1.1.1.1 ``` ``` ASNinformer 1.1.1.1 8.8.8.8 ``` ### 3️⃣ ASN 查询(新增) ``` echo AS13335 | ASNinformer ``` ``` cat ASNs.txt | ASNinformer ``` ``` ASNinformer AS13335 ``` ``` ASNinformer AS13335 AS15169 ``` `ASNs.txt` 示例: ``` AS13335 AS15169 ``` ## 选项 | 标志 | 描述 | |------|-------------| | `-p, --proxy` | 使用 HTTP/HTTPS 代理 | | `-o` | 输出文件名(默认:`./asn-result.json`) | ### 示例 #### 将结果保存到自定义文件 ``` echo 8.8.8.8 | ASNinformer -o results.json ``` #### 使用代理 ``` echo 8.8.8.8 | ASNinformer -p http://127.0.0.1:8080 ``` #### 带自定义输出的 ASN 查询 ``` echo AS13335 | ASNinformer -o asn-details.json ``` ## 输出格式 ### IP 查询输出 脚本输出的 JSON 文件结构如下: ``` { "AS15169": { "company's name": "Google LLC", "ASN": "AS15169", "ASN url": "https://bgp.he.net/AS15169", "Provided IP Ranges": [ "8.8.8.0/24" ], "Provided IP": [ "8.8.8.8" ] } } ``` 每个 ASN 条目包含: - **ASN** - ASN 编号 - **ASN url** - 指向 BGP 信息的链接 (`bgp.he.net`) - **Provided IP Ranges** - 为输入 IP 宣告的 CIDR 范围 - **Company's Name** - 组织名称 - **Provided IP** - 属于该 ASN 的输入 IP 列表 ### ASN 查询输出(新增) 当你提供 ASN 作为输入时,输出将包含 IP 范围: ``` { "AS13335": { "Company's Name": "Cloudflare, Inc.", "ASN": "AS13335", "ASN Url": "https://bgp.he.net/AS13335", "IP Ranges": [ "1.1.1.0/24", "1.0.0.0/24", ... ] } } ``` 每个 ASN 条目包含: - **Company's Name** - 组织名称 - **ASN** - ASN 编号 - **ASN Url** - 指向 BGP 信息的链接 (`bgp.he.net`) - **IP Ranges** - 该 ASN 宣告的所有 IP 范围 ## 前置条件 - Python 3.x - `requests` 库 - `certifi`, `charset-normalizer`, `idna`, `urllib3` (requests 的依赖项) 安装依赖项: ``` pip install -r requirements.txt ``` 作者:**NakuTenshi**
ASNinformer -- a lightweight tool that takes IPs or ASNs as input, looks up their ASN information, and groups results in a JSON file.
## 安装说明 克隆仓库: ``` git clone https://github.com/NakuTenshi/ASNinformer.git cd ASNinformer ``` 使脚本可执行: ``` chmod +x ASNinformer.py ``` 然后安装脚本: ``` ./install ``` ## 用法 ### 1️⃣ 使用 stdin(推荐) ``` echo 1.1.1.1 | ASNinformer ``` ``` cat ips.txt | ASNinformer ``` `ips.txt` 示例: ``` 1.1.1.1 8.8.8.8 9.9.9.9 ``` ### 2️⃣ 将 IP 作为参数传递 ``` ASNinformer 1.1.1.1 ``` ``` ASNinformer 1.1.1.1 8.8.8.8 ``` ### 3️⃣ ASN 查询(新增) ``` echo AS13335 | ASNinformer ``` ``` cat ASNs.txt | ASNinformer ``` ``` ASNinformer AS13335 ``` ``` ASNinformer AS13335 AS15169 ``` `ASNs.txt` 示例: ``` AS13335 AS15169 ``` ## 选项 | 标志 | 描述 | |------|-------------| | `-p, --proxy` | 使用 HTTP/HTTPS 代理 | | `-o` | 输出文件名(默认:`./asn-result.json`) | ### 示例 #### 将结果保存到自定义文件 ``` echo 8.8.8.8 | ASNinformer -o results.json ``` #### 使用代理 ``` echo 8.8.8.8 | ASNinformer -p http://127.0.0.1:8080 ``` #### 带自定义输出的 ASN 查询 ``` echo AS13335 | ASNinformer -o asn-details.json ``` ## 输出格式 ### IP 查询输出 脚本输出的 JSON 文件结构如下: ``` { "AS15169": { "company's name": "Google LLC", "ASN": "AS15169", "ASN url": "https://bgp.he.net/AS15169", "Provided IP Ranges": [ "8.8.8.0/24" ], "Provided IP": [ "8.8.8.8" ] } } ``` 每个 ASN 条目包含: - **ASN** - ASN 编号 - **ASN url** - 指向 BGP 信息的链接 (`bgp.he.net`) - **Provided IP Ranges** - 为输入 IP 宣告的 CIDR 范围 - **Company's Name** - 组织名称 - **Provided IP** - 属于该 ASN 的输入 IP 列表 ### ASN 查询输出(新增) 当你提供 ASN 作为输入时,输出将包含 IP 范围: ``` { "AS13335": { "Company's Name": "Cloudflare, Inc.", "ASN": "AS13335", "ASN Url": "https://bgp.he.net/AS13335", "IP Ranges": [ "1.1.1.0/24", "1.0.0.0/24", ... ] } } ``` 每个 ASN 条目包含: - **Company's Name** - 组织名称 - **ASN** - ASN 编号 - **ASN Url** - 指向 BGP 信息的链接 (`bgp.he.net`) - **IP Ranges** - 该 ASN 宣告的所有 IP 范围 ## 前置条件 - Python 3.x - `requests` 库 - `certifi`, `charset-normalizer`, `idna`, `urllib3` (requests 的依赖项) 安装依赖项: ``` pip install -r requirements.txt ``` 作者:**NakuTenshi**
标签:动态分析, 逆向工具