之前为了做 《plog.cn 1-6位 超期待删 短域名 筛查工具》,特地在 plog.cn 服务器上部署了一个 whois 查询小工具。PS:使用方法 http://plog.cn/whois/yourdomain.com

为了实现这个 whois 小工具,查了足足有两个小时的资料,网上有很多种 whois查询 的php实现,大致实现的思路无不例外以下几种:

1.通过http调用 xinnet或者是万网的 whois查询接口查询,而后将结果输出到页面,博客 http://blog.163.com/mengqing_dao/blog/static/133520513201162634227882/ 所描述的方法,就是这种最简单的,通过间接调用新网 whois查询接口的实现方法

2.直接通过读取 whois服务器,实现域名的查询。文章 http://dev.meettea.com/show-78-1.html 阐述的方法,就是根据被查询域名的后缀名,访问不同的 whois服务器,查询结果

对应的 域名后缀 -> whois 服务器 的映射关系大致如下:

  1. 'com'=>'whois.internic.net',
  2. 'net'=>'whois.internic.net',
  3. 'org'=>'whois.pir.org',
  4. 'asia'=>'whois.crsnic.net',
  5. 'cn'=>'whois.cnnic.net.cn',
  6. 'cc'=>'whois.nic.cc',

对于这种方法,虽然实现起来很简单,但是对于在Godaddy.com平台或者是国内的厦门易名网注册的 域名来说,只能查到一个大概,而无法查到具体真正的 domain 的信息,如下:

在godday注册的域名的whois信息

在厦门易名网注册的域名的whois信息

所以,无论上面两种方法,都不能比较完善的实现 whois 的查询功能。

这时候 Jay感觉到,仅仅是 whois 这件小事,也需要用牛刀,我们需要一个完善 whois查询组件。

此时的 Jay立刻打开 google.com,搜索 php whois,果不其然!

在 百度中,搜了半天,出来的都是一些外门奇方,google一搜,就立马出现一套完整的 whois client 的 php 实现,项目名称就叫《phpWhois》,项目主页:http://www.phpwhois.org/ ,于是立马 download 下来,根据文档中的 demo,很快就把 whois 的查询功能实现了。

下面是调用 phpWhois 组件,实现 whois信息查询的核心代码部分:

<pre><?php
include('whois_inc/whois.main.php');
$whois =newWhois();
$result = $whois->Lookup($domain);
$output = implode("\n", $result['rawdata']);
echo $output;?></pre>

在这里<pre></pre>标签的作用是定义预格式化的文本,就是将 whois 查询到的 raw text 按原来的文本排版格式直接输出。

DomainName: lxfq.cn
ROID:20130114s10001s62921725-cn
DomainStatus: ok
Registrant ID:000046dbRegistrant:黎军RegistrantContactEmail:2673732891@qq.com
SponsoringRegistrar:北京网尊科技有限公司NameServer: ns1.vtopchina.cn
NameServer: ns2.vtopchina.cn
RegistrationDate:2013-01-1404:02:16ExpirationDate:2014-01-1404:02:16
DNSSEC:unsigned

总结:

whois虽然仅仅只是一种最简单的基于 tcp 的查询协议,但是很多工作,即便我们实现起来也非常简单,如果有现成的 php组件可以用的话,就应该尽量避免自己重复发明一个轮子。倒不是说不可以,只是重新实现一种协议,即便是最简单的那种,也会遇到很多的例外。

就像 phpWhois 组件,争对godaddy类似这种的例外情况,就处理的非常好。

所以,专业的事情,还是让专业的开源组件去实现吧!

转载于:https://www.cnblogs.com/gongji/archive/2013/01/17/2863686.html

『原创』再谈用 php 实现域名 whois 信息查询相关推荐

  1. 『设计模式』再谈麦当劳的点单模式--命令模式(Command)

    23种设计模式+额外常用设计模式汇总 (持续更新) 麦当劳,我三期设计模式拿你举例子了,私信联系我打钱!!! 概述 命令模式又称为行动(Action) 模式或交易(Transaction) 模式. 命 ...

  2. 『设计模式』再谈Macdonald的汉堡口味--策略模式

    23种设计模式+额外常用设计模式汇总 (持续更新) 类的划分原则 面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类. 策略模式 1.定 ...

  3. 微软云盘配合服务器,『原创』开源5T微软云盘搭建教程onedrive index

    前言 为什么搭建一个微软共享云盘?百度云.蓝奏云不好吗?百度云有会员限制功能,各种限制更是不少,蓝奏云速度超快,但是貌似不支持大文件.微软毕竟是大厂,可用的5T教育邮箱现在也很好搞到,之所以采用是因为 ...

  4. 『原创』+『参考』基于PPC的图像对比程序——使用直方图度量

    前言的前言: 最近小弟闲来无聊,就想到了在PPC上面来做个图像对比的小东东,查找各方资料,终于在今天初步完成了这个程序,现在整理之后和各位共勉.程序中还存在很多不足之处,大家尽管提出自己的意见和建议, ...

  5. 『原创』用C++开发WM应用系列(6)——深化ListBox控件

    用C++开发WM应用系列文章索引 引言: 在上一篇博文中,我们简单的学习了ListBox控件的项添加.项的全部清除.接上一篇的尾巴,我们将在这篇博文中,介绍一些ListBox的小技巧吧,比如,获取选中 ...

  6. 『设计模式』 又谈麦当劳的食品--组合模式(Composite)

    23种设计模式+额外常用设计模式汇总 (持续更新) 我又又又谈了一期麦当劳,麦当劳看到了记得打钱

  7. 『原创』一个基于Win CE 5.0的Txt文件阅读器

    最近,拿到一台亲戚送的GPS导航仪,其系统是基于WinCE5.0的,所以我觉得可以写点小程序上去,上网一搜,还附带破解方法,把GPS破解后就变成一台屏幕超大的PDA了,于是我想用它看电子书,无奈,Wi ...

  8. 『原创』.Net CF下ListView的数据绑定

    首先,需要说明的是,在网络上已经有很多关于ListView数据绑定的文章了,但是,大部分是针对Winform的,那么对于很多新手来说可能对从Winform移植代码到.net cf平台会感觉很难,因为很 ...

  9. 『原创』统计建模与R软件-第四章 参数估计

    摘要: 本文由digging4发表于:http://www.cnblogs.com/digging4/p/5054594.html 统计建模与R软件-第四章 参数估计 4.1设总体的分布密度为 f(x ...

最新文章

  1. GATB=The Genome Analysis Toolbox with de-Bruijn graph 带有de-Bruijn图的基因组分析工具箱
  2. Quartz.net官方开发指南 第二课:Jobs And Triggers
  3. 谷歌系列 :Inception v1到v4
  4. c语言x的2取模_c语言如何取模运算
  5. 区块链如何应用于保险行业
  6. Java教程:SpringBoot常用配置
  7. formidable词根词缀_英语单词(词根词缀)
  8. 设置mysql密码 Access denied 问题
  9. 你一直想学的 RocketMQ,原来这样学才最省时省力
  10. ffplay播放器移植VC的工程:ffplay for MFC
  11. day1-4js算术运算符及类型转化
  12. Studio 3T 破解 mogodb
  13. OpenCV入门(八)——形态学技术
  14. 交流纯电容电路中电容的容抗、容量和频率以及电压与电流的关系
  15. 阿里云大咖秀——了不起的“空格”
  16. 二分算法。yxc教的
  17. 切图工具:输出512*512切片大小的切片
  18. 并行传输数据和串行传输数据_计算机系统中的并行处理和数据传输模式
  19. 计算机efs加密,EFS加密
  20. 一名普通22届本科毕业生|前端程序员|22年年终总结

热门文章

  1. mysql百万数据写入_mysql 百万级数据查找,并写入txt文件
  2. 易语言逐条读access数据_易语言操作数据教程之ACCESS实战视频教程
  3. vue 富文本存储_Vue富文本编辑器
  4. java执行sql文件_面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
  5. 记录一下python-opencv-ArUco-Apriltag
  6. linux命令行tcp连接,linux下2个检查tcp连接的命令
  7. win7发现不了无线网络_win10系统间设置共享文件夹后“网络”选项下仍然无任何文件(即发现不了共享电脑)...
  8. Centos下运行gpg --gen-key生成key时出现卡住解决方案笔记
  9. 精确到秒的JQuery日期控件,jquery日历插件,jquery日期插件
  10. LR+Jenkins实践思路