宇宙主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

欧基零壹微头条IP归属甄别会员请立即修改密码
查看: 1455|回复: 12

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

[复制链接]
发表于 2024-7-11 05:49:35 | 显示全部楼层 |阅读模式
项目地址: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 系统:


  1. # 更新包列表
  2. sudo apt update

  3. # 安装Node.js和npm
  4. sudo apt install nodejs npm

  5. # 验证安装
  6. node --version
  7. npm --version
复制代码


对于 CentOS/Fedora 系统:


  1. # 安装Node.js和npm
  2. sudo dnf install nodejs npm

  3. # 或者如果使用较旧的CentOS版本:
  4. # sudo yum install nodejs npm

  5. # 验证安装
  6. node --version
  7. npm --version
复制代码


对于 macOS (使用Homebrew):


  1. # 安装Homebrew (如果尚未安装)
  2. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

  3. # 安装Node.js (会自动包含npm)
  4. brew install node

  5. # 验证安装
  6. node --version
  7. npm --version
复制代码


对于 Windows:

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


  1. # 使用Chocolatey安装
  2. choco install nodejs

  3. # 验证安装
  4. node --version
  5. npm --version
复制代码


2. 下载并设置 whois-proxy.js:

  1. 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
复制代码


3. 安装依赖:

  1. npm install express whois node-cache express-rate-limit
复制代码


这将安装以下包:
- express: Web 应用框架
- whois: WHOIS 查询功能
- node-cache: 用于实现缓存
- express-rate-limit: 用于实现速率限制

使用 PM2 运行服务器

1. 全局安装 PM2:

  1. npm install -g pm2
复制代码


2. 使用 PM2 启动服务器:

  1. pm2 start whois-proxy.js --name "whois-proxy"
复制代码


3. 查看运行状态:

  1. pm2 status
复制代码


4. 查看日志:

  1. pm2 logs whois-proxy
复制代码


5. 停止服务器:

  1. pm2 stop whois-proxy
复制代码


6. 重启服务器:

  1. pm2 restart whois-proxy
复制代码


API 使用

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

例如:

  1. http://x.x.x.x/whois/example.com
复制代码

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

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


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

注意事项

- 服务器默认在80端口运行。如需更改,请修改代码中的 `port` 变量。
- 速率限制设置为每个IP每15分钟100个请求。
- WHOIS数据默认缓存1小时。
发表于 2024-7-11 05:59:36 | 显示全部楼层
前排支持楼主
发表于 2024-7-11 11:38:49 | 显示全部楼层
不是很理解,这和服务器上直接 whois 拿到的结果差别在哪里
发表于 2024-7-11 11:42:23 来自手机 | 显示全部楼层
自己搭建一个看看,感谢分享
发表于 2024-7-11 11:47:16 | 显示全部楼层
原来whois是要付钱的啊。。。。 那这个服务我搭建好后可以卖给谁?
发表于 2024-7-11 11:48:30 | 显示全部楼层
支持技术贴
不过我只要看见nodejs字眼直接pass
 楼主| 发表于 2024-7-11 14:10:03 | 显示全部楼层

谢谢支持
 楼主| 发表于 2024-7-11 14:11:41 | 显示全部楼层
fsl 发表于 2024-7-11 11:38
不是很理解,这和服务器上直接 whois 拿到的结果差别在哪里

我这个是用于domainkeeper服务的,cf worker搭建的,没发现worker直接whois查询的方法,只能这么弄了。你要是自己服务器查,大可不必搭建这个。另外这个搭建后,你可以输入网址在网页查看了,多了一个入口算是,你在外面用手机也可以查了,不必非得开电脑用命令行查
 楼主| 发表于 2024-7-11 14:17:15 | 显示全部楼层
reg01 发表于 2024-7-11 11:47
原来whois是要付钱的啊。。。。 那这个服务我搭建好后可以卖给谁?

市面上的whois api基本都是要付费的,可能一定次数免费。现在这个版本还不支持token,所以暂时不能售卖,因为知道网址就可以直接查。欢迎pr
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|FastFib VPS论坛

GMT+8, 2024-9-20 06:43 , Processed in 0.064125 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表