全面升级的PHP Whois查询类库:支持RDAP、兼容PHP 8.4及最新根域名服务器
前言
在域名管理和网络安全领域,Whois查询是一项基础而重要的功能。今天我要向大家推荐一个全面升级的PHP Whois查询类库——php-whois
,这是基于io-developer原版项目的深度优化版本,不仅解决了原项目多年未维护的问题,还新增了多项实用功能。
项目背景
原版php-whois
由io-developer开发,能够查询域名Whois信息并自动解析返回结果。然而随着时间推移,该项目逐渐暴露出一些问题:
- 不再兼容新版本PHP(尤其是PHP 8+)
- 根域名Whois服务器列表过时
- 不支持已关闭Whois服务的新顶级域(如.app、.dev等)
- 存在一些已知bug未修复
为此,我对该项目进行了全面升级和维护,使其更适合现代PHP开发环境。
主要升级内容
1. 全面兼容PHP 8.4
随着PHP 8系列的普及,新版语言特性带来了显著的性能提升。本类库已完全适配PHP 8.x系列,包括:
- 类型声明严格模式支持
- 命名参数兼容性
- 最新错误处理机制
2. 更新根域名Whois服务器列表
互联网域名体系不断发展,许多顶级域的Whois服务器地址已变更。本项目:
- 更新了所有主流gTLD(通用顶级域)和ccTLD(国家代码顶级域)的Whois服务器
- 定期维护服务器列表,确保查询准确性
- 支持超过1500种域名后缀的查询
3. 新增RDAP协议支持
针对.app、.dev等已关闭传统Whois服务的新顶级域,本类库实现了RDAP(Registration Data Access Protocol)查询支持:
$whois = new Whois();
// 自动判断使用Whois还是RDAP协议
$result = $whois->lookup('example.dev');
RDAP相比传统Whois具有以下优势:
- 结构化数据返回(JSON格式)
- 多语言支持
- 更完善的访问控制
- 扩展性更好
4. 修复已知问题
解决了原项目中包括但不限于以下问题:
- 特定TLD查询超时
- 部分Whois响应解析错误
- 多字节字符处理异常
- 服务器重定向处理逻辑缺陷
安装与使用
安装方法
推荐通过Composer安装:
composer require cccyun/php-whois
基础使用示例
require 'vendor/autoload.php';
use cccyun\whois\Whois;
$whois = new Whois();
$result = $whois->lookup('example.com');
// 输出查询结果
print_r($result);
// 检查域名是否可注册
if ($whois->isAvailable('example.com')) {
echo "域名可注册";
} else {
echo "域名已被注册";
}
高级功能
自定义超时设置:
$whois->setTimeout(10); // 设置查询超时为10秒
指定查询服务器:
$whois->setServer('com', 'whois.verisign-grs.com');
获取原始Whois数据:
$rawData = $whois->getRawData('example.com');
更多示例请参考项目GitHub仓库的文档部分。
PHP代码加密方案
为了保护您的知识产权,推荐使用专业的PHP代码加密服务。php.javait.cn提供多种加密方案:
- SG系列:SG14~SG16,高强度加密
- IC系列:IC11-12,平衡性能与安全性
- 免扩展DECK系列:DECK V1~V3,无需安装额外扩展
特别推荐:
- IC11:永久免费,适合中小项目
- DECK V1:免扩展,部署简单
- 最新版混淆加密(goto,enphp,noname)也提供免费选项
项目地址与贡献
GitHub仓库:
欢迎开发者:
- 提交Issue报告问题
- 发起Pull Request贡献代码
- Star支持项目发展
结语
这个升级版的php-whois
类库不仅解决了原项目的维护问题,还加入了现代Web开发所需的新特性。无论是用于域名监控系统、注册商平台还是网络安全工具,它都能提供可靠的服务。
特别提醒:在使用Whois查询时,请遵守相关域名的查询频率限制,避免被服务器封禁。对于商业应用,建议考虑缓存查询结果以减少请求次数。
如果你有任何问题或建议,欢迎在评论区留言讨论!