V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bacon159
V2EX  ›  域名

[whois-proxy] 自建 whois 代理服务器,再也不用为 whois api 而付费

  •  
  •   bacon159 · 167 天前 · 394 次点击
    这是一个创建于 167 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址: https://github.com/ypq123456789/whois-proxy 这个项目本身就是为了 domainkeeper 而生的,但是可能还是有点用,分享给大家。惯例求鸡腿、求 star 。

    项目描述

    这是一个简单的 WHOIS 代理服务器,使用 Node.js 和 Express 框架构建。它提供了一个 API 端点来查询域名的 WHOIS 信息,并包含以下特性:

    • 使用 node-cache 实现数据缓存
    • 使用 express-rate-limit 实现请求速率限制
    • 提取并返回关键 WHOIS 信息(创建日期、过期日期、注册商)

    前置要求

    • Node.js (建议版本 12.x 或更高)
    • npm (通常随 Node.js 一起安装)

    安装

    1. 安装 npm (如果尚未安装):

    以下是在不同操作系统上安装 Node.js (包含 npm) 的命令:

    对于 Ubuntu/Debian 系统:

    # 更新包列表
    sudo apt update
    
    # 安装 Node.js 和 npm
    sudo apt install nodejs npm
    
    # 验证安装
    node --version
    npm --version
    

    对于 CentOS/Fedora 系统:

    # 安装 Node.js 和 npm
    sudo dnf install nodejs npm
    
    # 或者如果使用较旧的 CentOS 版本:
    # sudo yum install nodejs npm
    
    # 验证安装
    node --version
    npm --version
    

    对于 macOS (使用 Homebrew):

    # 安装 Homebrew (如果尚未安装)
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    # 安装 Node.js (会自动包含 npm)
    brew install node
    
    # 验证安装
    node --version
    npm --version
    

    对于 Windows:

    Windows 用户通常直接从 Node.js 官网下载安装程序。但如果您使用包管理器如 Chocolatey,可以使用以下命令:

    # 使用 Chocolatey 安装
    choco install nodejs
    
    # 验证安装
    node --version
    npm --version
    
    1. 下载并设置 whois-proxy.js:

      mkdir -p /root/whois && curl -o /root/whois/whois-proxy.js https://raw.githubusercontent.com/ypq123456789/whois-proxy.js/main/whois-proxy.js && cd /root/whois
      
    2. 安装依赖:

      npm install express whois node-cache express-rate-limit
      

    这将安装以下包:

    • express: Web 应用框架
    • whois: WHOIS 查询功能
    • node-cache: 用于实现缓存
    • express-rate-limit: 用于实现速率限制

    使用 PM2 运行服务器

    1. 全局安装 PM2:

      npm install -g pm2
      
    2. 使用 PM2 启动服务器:

      pm2 start whois-proxy.js --name "whois-proxy"
      
    3. 查看运行状态:

      pm2 status
      
    4. 查看日志:

      pm2 logs whois-proxy
      
    5. 停止服务器:

      pm2 stop whois-proxy
      
    6. 重启服务器:

      pm2 restart whois-proxy
      

    API 使用

    发送 GET 请求到 /whois/:domain 端点,其中 :domain 是您想查询的域名。

    例如:

    http://x.x.x.x/whois/example.com
    

    其中 x.x.x.x 是你 vps 的 ip 。

    你也可以直接在浏览器中输入这一地址,返回结果就是 whois 查询结果。

    image

    如果有需要,你也可以绑定自己的域名,并且套上 CF 的 CDN ,让自己的服务更加安全。

    注意事项

    • 服务器默认在 80 端口运行。如需更改,请修改代码中的 port 变量。
    • 速率限制设置为每个 IP 每 15 分钟 100 个请求。
    • WHOIS 数据默认缓存 1 小时。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1695 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:42 · PVG 00:42 · LAX 08:42 · JFK 11:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.