RIPE数据库JSON-RPC服务器
一个轻量级的JSON-RPC服务器 RIPE数据库查询 通过简单的API。这使用RIPE的REST API提供实时、过滤的网络信息。
______________________________________________________________________
目录
______________________________________________________________________
概述
此服务器允许用户:
- 查询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/域格式匹配。
- 扩展过滤:正则表达式或高级模式匹配。
