DNS域名监控系统

一个AI驱动的DNS域名监控系统,可跟踪全球任何域名的注册信息、到期日期等,适用于竞争情报、品牌保护和域名投资。

  • by Tochi-Nwachukwu
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Tochi-Nwachukwu/Domain-Monitoring-Agent-MCP

使用说明

🌐 带MCP的DNS监控代理

一个智能的AI驱动的DNS域监控系统,可以让您跟踪 世界上任何域名 -无论你是否拥有它。非常适合监控您自己的域名,跟踪竞争对手的注册,并在有价值的域名即将过期时收到警报。使用模型上下文协议(MCP)、OpenAI代理和漂亮的Gradio接口构建。

💡 关键见解: 您可以跟踪和监控互联网上的任何域名,而不仅仅是您拥有的域名!获取竞争情报,识别收购机会,永远不要错过有价值的域名即将到期的时间。

🎯 为什么要跟踪任何域名?

你不需要拥有一个域名来跟踪它! 此工具非常适合:

  • 🏢 竞争对手情报:监控竞争对手域名何时到期,以识别潜在的收购机会
  • 💎 域名投资:跟踪高级域名,并在其即将过期时收到通知
  • 🔒 品牌保护:监控与您的品牌相似的域名,并在域名可用时迅速采取行动
  • 📈 市场调研:密切关注行业参与者及其域名组合
  • 🎯 收购策略:建立一个要获取的域的监视列表,并在它们过期之前收到警报

✨ 特性

  • 🌍 追踪全球任何域名:监控互联网上的任何域名-不需要所有权!

    • 追踪您自己的域名
    • 监控竞争对手域名
    • 关注高级域名以寻找收购机会
    • 建立一个你感兴趣的域名观察列表
  • 🔍 全面的领域情报:获取任何域的完整DNS信息:

    • 域名注册机构
    • 创建日期
    • 到期日期(确切知道到期时间!)
    • 名称服务器
  • 💾 自动跟踪数据库:自动将域信息保存到本地SQLite数据库

    • 构建您的域名观察列表
    • 追踪无限域名
    • 历史跟踪数据
  • ⏰ 智能过期监测:收到3个月内域名到期的通知,并根据紧急程度进行优先级排序:

    • 🔴 严重:<7天(立即行动!)
    • 🟡 警告:<30天(准备收购)
    • 🟢 通知:<90天(开始计划)
  • 🤖 AI驱动的代理:GPT-4o-mini支持的自然语言界面,可以理解您的查询

    • “competitor-domain.com什么时候到期?”
    • “跟踪竞争对手的所有域名”
    • “显示本月到期的域名”
  • 📊 投资组合管理:查看和管理您的整个域监视列表(拥有或跟踪)

  • 🔔 自动推送通知:从不错过机会-收到以下提醒:

    • 您的域名即将过期
    • 竞争对手域名可用
    • 高级域名可供争夺
  • 🖥️ 漂亮的UI:基于Gradio的现代聊天界面,实现无缝交互

🔍 工作原理:跟踪任何域名

此工具利用 公共WHOIS数据 在互联网上查找任何注册域名的信息。您不需要拥有或拥有对域名的特殊访问权限来跟踪它——所有信息都来自公开可用的域名注册数据库。

您可以做什么:

  1. 查找任何域名:输入任何域名(例如。, competitor.com)并立即获得:

    • 注册时
    • 当它到期时
    • 注册官是谁
    • 它使用什么名称服务器
  2. 添加到观察列表:将任何域保存到您的跟踪数据库-构建以下监视列表:

    • 您自己的域名
    • 竞争对手域名
    • 您要获取的域名
    • 品牌保护目标
  3. 获取到期提醒:当跟踪的域即将过期时,接收自动通知:

    • 您的域名(这样您就不会丢失它们)
    • 竞争对手域名(因此您可以提出收购要约)
    • 高级域名(这样您就可以在可用时注册它们)

工作流程示例:

1. Look up: "Check when competitor-domain.com expires"
   → Agent finds: "Expires on March 15, 2026"

2. Track it: "Add this to my watchlist"
   → Agent saves: Domain added to tracking database

3. Get alerted: (90 days before expiration)
   → Notification: "competitor-domain.com expires in 90 days!"

4. Take action: Contact owner, prepare to register, or make an offer

备注:此工具使用公开的WHOIS数据。任何人都可以合法访问检索到的所有信息。然而,始终尊重知识产权,并以合乎道德的方式使用这一工具。

🏗️ 建筑

该项目利用 模型上下文协议(MCP) 创建模块化、可扩展的系统:

  • MCP服务器:

    • dns_server.py -处理DNS查找和数据库操作
    • push_server.py -管理通知传递
  • AI 代理: dns_agent.py -编排工具并提供自然语言交互

  • 用户界面: user_interface.py -基于Gradio的聊天界面

  • 核心逻辑: dns_lookup.py -DNS API集成和数据库管理

  • 监控: monitor_dns.py -自动监控代理

📋 先决条件

  • Python 3.11或更高版本
  • 紫外线 -快速Python包安装程序
  • API Ninjas API密钥(用于DNS查找)-在 api-ninjas.com
  • OpenAI API密钥(用于AI代理)

🚀 安装

1.安装uv

# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or via pip
pip install uv

2.克隆存储库

git clone <repository-url>
cd Domain-Monitoring-Agent-MCP

3.安装依赖项

随着 uv,安装依赖关系非常简单-它会自动创建一个虚拟环境并安装所有内容:

# Install all dependencies (this creates .venv and installs packages)
uv sync

就是这样! uv 将:

  • ✅ 在以下位置创建虚拟环境 .venv/
  • ✅ 从安装所有必需的依赖项 pyproject.toml
  • ✅ 锁定依赖版本以实现可重复性

可选:安装开发依赖项(Jupyter笔记本)

uv sync --extra dev

4.配置环境变量

创建一个 .env 项目根目录中的文件:

# .env
API_NINJA=your_api_ninjas_key_here
OPENAI_API_KEY=your_openai_api_key_here

💻 用法

交互式聊天界面(推荐)

启动Gradio网络界面,获得用户友好的聊天体验:

uv run user_interface.py

然后打开浏览器 http://localhost:7860

您可以尝试的示例查询:

  • “competitor-site.com什么时候到期?”(跟踪竞争对手域名!)
  • “检查premium-domain.com的到期日期,并将其添加到我的监视列表中”
  • “那个很酷的创业网站的注册商是谁?”
  • “显示3个月内到期的所有域名”(查找收购机会)
  • “查找mybrand-typo.com并跟踪它”(品牌保护)
  • “列出我正在跟踪的所有域”
  • “获取潜在收购的完整信息.com”

自动监控代理

运行自主监控代理,检查过期域并发送通知:

uv run monitor_dns.py

这将:

  1. 扫描所有被跟踪的域名(您的+竞争对手+目标)
  2. 识别3个月内到期的域名
  3. 按紧急程度排序(严重<7天,警告<30天)
  4. 为每个域发送推送通知

非常适合:

  • 竞争对手域名即将过期时收到警报
  • 从不错过优质域名机会
  • 确保您自己的域名保持更新

MCP服务器独立

您还可以直接运行MCP服务器,以便与其他MCP客户端集成:

uv run dns_server.py

Python API用法

from dns_lookup import DNS

# Track a competitor's domain
competitor_dns = DNS(domain="competitor.com")

# Get expiration date - when does it expire?
expiry = competitor_dns.get_expiry_date()
print(f"Competitor domain expires: {expiry}")

# Get all information about the domain
all_info = competitor_dns.get_all_info()
print(all_info)

# Add competitor domain to your watchlist
save_result = competitor_dns.save_dns_search()
print(f"Added to watchlist: {save_result}")

# Track a premium domain you want to acquire
premium_dns = DNS(domain="premium-domain.com")
premium_info = premium_dns.get_all_info()
premium_dns.save_dns_search()

# Check all domains expiring soon (acquisition opportunities!)
expiring = DNS.watch_dns()
print(f"Domains expiring soon: {expiring}")

# View your complete watchlist (owned + tracked domains)
all_domains = DNS.get_all_tracked_domains()
print(f"Total domains tracked: {all_domains['total_domains']}")

📁 项目结构

Domain-Monitoring-Agent-MCP/
├── dns_agent.py              # AI agent orchestration
├── dns_server.py             # MCP server for DNS operations
├── dns_lookup.py             # Core DNS lookup and database logic
├── user_interface.py         # Gradio web interface
├── monitor_dns.py            # Automated monitoring agent
├── push_server.py            # Push notification MCP server
├── dns_records.db            # SQLite database (auto-created)
├── dns_agent.ipynb           # Jupyter notebook for experimentation
├── .env                      # Environment variables (create this)
├── .venv/                    # Virtual environment (created by uv)
├── pyproject.toml            # Project metadata and dependencies
├── uv.lock                   # Locked dependency versions
├── .gitignore                # Git ignore patterns
├── docs/                     # Documentation
│   └── static/              # Screenshots and assets
└── README.md                # This file

🛠️ 可用的MCP工具

DNS服务器通过MCP公开以下工具:

工具 说明
get_registrar 获取域名注册商信息
get_creation_date 获取域创建日期
get_expiry_date 获取域过期日期
get_name_servers 获取域名服务器
get_all_dns_info 一次获取所有DNS信息
save_dns_search 将域保存到跟踪数据库
lookup_and_save_domain 查找和保存在一个操作中
watch_dns 获取3个月内到期的域名
get_all_tracked_domains 获取所有被跟踪的域名

🔧 使用的技术

  • 紫外线 -快速Python包和项目管理器
  • 模型上下文协议(MCP) -通用AI集成协议
  • FastMCP -FastAPI风格的MCP服务器框架
  • OpenAI代理 -AI代理编排
  • 格拉迪奥 -机器学习应用程序的Web UI
  • API忍者 -WHOIS/DNS数据API
  • SQLite -用于域跟踪的轻量级数据库
  • 派丹蒂克 -数据验证和设置管理
  • Python dotenv -环境变量管理
  • 请求: -API调用的HTTP库

已安装的依赖项

运行后 uv sync,安装了以下软件包:

核心依赖关系:

  • requests -DNS API的HTTP请求
  • python-dotenv -环境配置
  • pydantic -数据验证
  • gradio -Web界面
  • mcp -模型上下文协议
  • fastmcp -MCP服务器框架
  • openai-agents -AI代理编排

开发依赖关系(可选):

  • jupyter -笔记本电脑环境
  • ipykernel -Jupyter内核

🎯 用例

💼 竞争情报

  • 监控竞争对手域名:跟踪竞争对手的域名何时到期
  • 收购机会:在有价值的竞争对手域名即将过期时收到通知
  • 市场分析:了解竞争对手的领域战略和投资组合
  • 品牌保护:监控类似域名和打字尝试

💰 域名投资与收购

  • 高级域名搜索:跟踪高价值域名,并在过期前收到警报
  • 投资组合构建:监控您要获取的域,并在正确的时间采取行动
  • 接住水滴:确切知道域名何时可以注册
  • ROI优化:不要错过宝贵的域名机会

🏢 商业和个人使用

  • 个人域名组合:在一个地方跟踪您的所有域名注册
  • 关键业务领域:确保您的重要域名永不过期
  • 代理/客户管理:跟踪客户端域并接收续订提醒
  • 域名经销商运营:通过自动警报管理大型投资组合

🔒 安全和品牌监控

  • 品牌保护:在其他人抢走之前,监控与你的品牌相似的域名
  • 安全监控:跟踪重要域并检测注册更改
  • 防御性注册:知道何时保护与您的品牌相关的域名

现实世界场景

  • 📌 “我竞争对手的域名将在15天后到期,这是提出报价的最佳时机”
  • 📌 “我想要的高级域名将于下个月到期!”
  • 📌 “有人注册了与我的品牌类似的域名-我需要跟踪它”
  • 📌 “我想知道competitor.com什么时候可以续订”

❓ 常见问题解答

追踪我不拥有的域名合法吗?

对! 该工具使用任何人都可以访问的公开WHOIS数据。域名注册信息按设计是公开的(ICANN要求)。然而:

  • ✅ 在道德和法律上使用此工具
  • ✅ 尊重知识产权和商标权
  • ✅ 请勿用于恶意目的
  • ✅ 遵守当地有关域名获取的法律

我可以追踪竞争对手的域名吗?

当然! 这是主要用例之一。许多企业监控竞争对手的域名,以:

  • 了解他们的数字战略
  • 识别收购机会
  • 保护他们的品牌
  • 随时了解行业动态

域名所有者知道我在跟踪他们吗?

号码 查找WHOIS数据是一项标准的被动操作。当您查询域所有者的信息时,不会向其发送通知。

当跟踪的域过期时会发生什么?

该工具将在到期前(最多提前90天)提醒您。域过期后,通常会经过以下步骤:

  1. 宽限期 (0-45天):所有者可以续订
  2. 赎回期 (30天):业主可以以更高的成本收回
  3. 删除期 (5天):即将上市
  4. 可用:你可以注册!

我可以跟踪具有隐私保护的域名吗?

您可以跟踪它们,但由于隐私服务,一些WHOIS信息可能会被编辑。您通常仍会收到到期日期和注册商信息。

🤝 贡献

欢迎投稿!请随时提交拉取请求。

📝 许可证

这个项目是开源的,可以在MIT许可证下使用。

🙏 致谢

📧 支持

有关问题、疑问或建议,请在存储库上打开问题。


由以下材料制成❤️ 使用MCP和AI代理