万网域名查询,万网域名查询接口调用实现方式

万网这个品牌早就被阿里云收购整合,现在大家口中提到的万网域名查询,实际调用的是阿里云域名服务相关API。如果依靠程序读取域名注册信息、到期时间还有实名状态,全部走阿里云OpenAPI体系,和早年万网独立提供的接口已经完全不是一套东西。

早些年万网有一个公开免费接口,地址是 http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=域名,返回XML格式数据,返回码210代表域名还可以注册,211代表已经被别人注册。这个接口调用不需要任何身份校验,浏览器直接访问就能拿到结果。只是这个接口早已停止服务。我测试的时候打开这个地址,返回内容为 300 aliyun.com 213 : Timeout,服务器虽然能够响应,查询功能已经失效。网上不少教程教大家写Python脚本、Java的GET请求调用这个接口,代码逻辑本身没问题,但底层接口已经不能正常工作。

万网域名查询,万网域名查询接口调用实现方式

现在正规实现域名查询,要用阿里云OpenAPI。域名相关接口归类在domain产品线,几个常用查询接口分别是:QueryDomainByDomainName,依靠域名名称读取详细信息;QueryDomainByInstanceId,通过实例ID查询;QueryDomainByParam,按关键词批量检索;还有DescribeDomains归属域名解析产品线,用来读取当前账号名下全部域名列表。想要单独查询单个域名注册资料,QueryDomainByDomainName最直接。

发起调用前,先要获取身份凭证。登录阿里云控制台,进入AccessKey管理页面创建AccessKey ID和AccessKey Secret。这两组字符等同于账号密码,接口请求时用来做签名校验。阿里云OpenAPI不接受裸请求,每一次请求都必须附带签名,签名生成规则比较繁琐,手动计算很容易出错。实际开发不会手写签名算法,直接使用官方SDK开发。

阿里云提供Java、Python、PHP、Node.js、Go这类主流编程语言的SDK。拿Python举例,先执行 pip install alibabacloud_domain20180129 安装依赖包,代码内部创建Client实例,填入AccessKey ID、Secret以及区域ID,一般填写 cn-hangzhou,接着构建QueryDomainByDomainNameRequest对象,设置DomainName参数,调用query_domain_by_domain_name方法,返回结构化数据对象。返回字段里面RegistrantOrganization是域名持有者,RegistrationDate为注册时间,ExpirationDate是到期时间,RealNameStatus代表实名认证状态,SUCCEED代表认证通过,NONAUDIT代表还未认证,DnsList存储DNS服务器列表,DomainNameProxyService标记隐私保护开关状态。这些字段基本覆盖日常查询需要的信息。

Java调用逻辑大体相近,SDK对应的Maven依赖是 com.aliyun:alibabacloud_domain20180129,初始化Client之后构建请求对象,调用queryDomainByDomainName方法,拿到QueryDomainByDomainNameResponse,调用getBody()读取里面各项字段。整套流程和Python版本逻辑一致,语言差异不大。

不想写代码的话,阿里云提供OpenAPI Explorer在线调试工具。浏览器打开对应接口页面,填入DomainName,完成授权,点击运行就能查看返回结果,工具还能自动生成SDK示例代码,可以直接复制到项目使用。偶尔查询、或者先验证接口逻辑再写代码,这个工具很省事。

调用接口有几个问题需要留意。首先是调用频率限制,查询接口不能无限制请求,超出限额会触发限流。其次是权限配置,如果使用RAM子账号,需要单独给子账号分配domain:QueryDomainByDomainName权限,主账号自带全部权限,子账号缺少权限会直接报错。还有域名格式,DomainName参数不要带上http://或者https://前缀,直接填写example.com,带上协议前缀会查询失败。

至于那个老旧panda接口,如果只想手动快速查域名注册状态,不想部署SDK,可以试试第三方聚合接口,像cn.apihz.cn提供的whois查询,传入domain参数就能返回JSON格式的注册商、创建时间、到期时间等信息。但第三方接口数据源不稳定,项目正式上线优先选用阿里云官方接口。

万网域名查询接口这件事,本质就是阿里云OpenAPI的其中一部分。整套操作就三步:获取AccessKey,安装SDK,调用QueryDomainByDomainName。老接口已经下线,新接口文档内容完整,跟着文档操作一般不会卡住。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。