RIPE数据库查询服务

一个轻量级的JSON-RPC服务器,通过简单的API暴露RIPE数据库查询,提供实时、过滤的网络信息。

  • by alkon
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 alkon/mcp-ripe

使用说明

RIPE数据库JSON-RPC服务器

一个轻量级的JSON-RPC服务器 RIPE数据库查询 通过简单的API。这使用RIPE的REST API提供实时、过滤的网络信息。


目录

  1. 概述
  2. 为什么选择RIPE进行子域分析
  3. 特性
  4. 需求
  5. 设置和安装
  6. 用法
  7. 测试
  8. JSON-RPC方法
  9. 利弊
  10. 未来的增强功能

概述

此服务器允许用户:

  • 查询RIPE数据库以获取IP地址、AS号和域对象。
  • 根据模式和限制动态过滤结果。
  • 通过访问结构化JSON输出 JSON-RPC. 内置于 快速API 高性能和易于部署。

为什么选择RIPE进行子域分析

RIPE的数据库对于子域分析和安全侦察非常有价值:

地区管理局

RIPE管理欧洲、中东和中亚的IP分配,这些地区拥有高度集中的托管基础设施、CDN和云服务,攻击者经常利用这些资源进行子域接管攻击。

详细的网络记录

与简单的DNS查找不同,RIPE提供全面的网络注册数据,包括:

  • inetnum/inet6num 显示确切IP范围及其所有者的记录
  • 路线 揭示BGP路由关系的对象
  • 领域 将反向DNS链接到组织的对象
  • 事件响应的联系信息和滥用联系人

历史背景

RIPE保留了知识产权所有权变更的历史记录,这对于识别以下内容至关重要:

  • 最近转移的IP块(通常是滥用的目标)
  • 以前与恶意行为者相关的基础设施
  • 不同时间段的子域托管模式

交叉引用能力

RIPE数据允许在多个维度上关联子域:

  • 查找同一组织拥有的所有IP
  • 在看似无关的域之间发现共享基础设施
  • 识别遗留IP范围上的影子IT或被遗忘的子域

滥用检测

这 备注 和 描述 字段通常包含有关网络用途的有价值的元数据,有助于区分合法的企业基础设施和可能受到损害或可疑的托管。

对于安全分析,这意味着您可以通过发现托管在他们拥有但可能已经忘记的IP范围上的子域来映射组织的整个攻击面,这是许多安全程序中的一个关键盲点。


特性

  • 实时查询 成熟DB 使用一个 API密钥.
  • JSON-RPC接口,便于与其他系统集成。
  • 可配置的结果限制,以防止过载。
  • 可轻松扩展为多种查询类型(IP、ASN、域)。
  • 轻量级:不需要庞大的本地数据库。

需求

  • Python 3.13+
  • 快速API>=0.111.0
  • Uvicorn[标准]>=0.25.0
  • httpx>=0.28.1
  • Pydantic>=2.5.0
  • tqdm>=4.66.0
  • pytest>=7.4.0
  • 请求>=2.31.0

看 requirements.txt 确切的版本。


设置和安装

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Upgrade pip
python -m pip install --upgrade pip

# Install dependencies
python -m pip install -r requirements.txt

# Run the server
uvicorn src.mcp_ripe_jsonrpc:app --reload --port 8000

用法

向MCP端点发送JSON-RPC请求:

curl -X POST "http://127.0.0.1:8000/mcp" \
-H "Content-Type: application/json" \
-d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "query_ripe",
    "params": {"query": "193.0.6.142", "limit": 5}
}'

测试

运行测试套件以验证API功能:

# Test dependencies are included in requirements.txt
# If you need to install them separately:
# pip install pytest requests

# Start the server in one terminal
uvicorn src.mcp_ripe_jsonrpc:app --reload --port 8000

# Run tests in another terminal
pytest tests/test_mcp.py -v

测试套件包括:

  • JSON-RPC端点验证
  • 查询参数测试
  • 响应格式验证
  • 错误处理检查

对于手动测试,您可以使用上面“用法”部分中显示的curl命令。

JSON-RPC方法

query_ripe

描述:查询RIPE数据库以获取IP、域或ASN对象。

参数:

query(字符串)——IPv4、IPv6或域。

limit(整数,可选)--最大结果数。默认值:10。

返回:具有类型和属性的对象列表。

请求示例:

{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "query_ripe",
    "params": {"query": "8.8.8.8", "limit": 3}
}

利弊

  • 优点

✅ 实时查询;不需要本地海量数据集。

✅ 轻量级和云友好。

✅ 用于微服务编排的JSON-RPC接口。

✅ 支持过滤和结果限制,保存API使用令牌。

✅ 易于扩展到多种网络查询类型。

  • 缺点

⚠ 完整功能需要RIPE DB API密钥。

⚠ 仅限于RIPE数据库覆盖范围(主要是欧洲互联网资源)。

⚠ 没有历史完整数据集查询。

⚠ 依赖外部API可用性和费率限制。

未来的增强功能

  • 缓存:存储最近的查询结果以减少API调用。

  • 其他方法:支持ASN查找、反向DNS查询或RIPE Atlas探测。

    • ASN查找:确定哪个网络/组织拥有IP范围。对于理解基础设施关系、检测可疑的托管模式以及跟踪经常使用特定ASN的威胁行为者至关重要。
    • 反向DNS查询:将IP映射回主机名,以发现隐藏的子域,识别命名模式,并发现转发DNS可能遗漏的相关基础设施。
    • RIPE Atlas探头:从全球多个有利位置提供分布式网络测量,帮助检测DNS劫持、路由操纵和区域阻塞,这对于识别仅影响特定地理区域的攻击至关重要。
  • 输入验证:确保查询与IPv4/IPv6/域格式匹配。

  • 扩展过滤:正则表达式或高级模式匹配。