终极Whois查询工具:优雅美观、功能强大、信息全面

1. 引言

这个程序的适用面不是很广,但对于域名爱好者,我想这会是一个不错的工具。

查询一个域名的Whois,这样的工具有很多。但是显示的数据却是有点差强人意,一次偶然的机会发现了 who.cx 这个whois工具,不得不说界面很好看。

于是,抱着学习的态度借鉴了该网站的前端页面。

前几天,有网友在我的博客留言说想要源码,这中间也有哥们说给我发红包买源码。我很惭愧,因为这不是我自主开发的工具,更多的是一种借鉴。

所以,今天就把这个工具在Github上开源。

2. 后端的探索

2.1 阶段一

一开始的时候并没有想太多,主要是想套个壳,就直接反代了 who.cx 的接口,然后当请求量稍微大一点后,ip就被限额了。

我有考虑过加代理,但这样的成本就有点高了。于是,不得不换个法子。

2.2 阶段二

我在查看js文件的时候,发现了 tian.hu 这个whois查询网站,不得不说也非常的强大,就是界面可能比起 who.cx 要逊色一点。

于是,我决定将它的api作为我的数据来源,并对其数据进行适当的处理。

不得不说,这个方法持续了好久。

2.3 阶段三

就在发布本篇文章的前一天,我发现查不了域名了。于是,我在本地运行了一下代码。发现其接口中数据的某些键发生了变化。

OK~本地跑的结果又正常了,于是便将代码放到了服务器,但是呢,还是出错。

我在服务器进行了调试,哦~原来也被限额了。

这时我便在想,难道真的要加代理吗?说实话,代理的成本比较高,免费代理又没什么能用的。

于是乎,我便想着,那就不调用别人的接口了,我自己手搓一下。于是去网上找了一下相关信息与教程,最终发现 whois21 这个库所能查询的域名类型比较多一点。

所以,真正直接查询whois的后端有了,而不是调用他人的接口。

3. 程序介绍

3.1 运行环境

  1. Flask
  2. Gunicorn
  3. Python3.10(参考)

3.2 源码

Github:https://github.com/WuSuoV/SkyQianWhois

3.3 功能和实现原理

因为后端是我自己进行仿写的,所以并没有做到跟 who.cx 完全一致,或许你可以当做是二次开发。

  1. 显示Whois原始信息
  2. 对信息进行格式化,获取域名、服务商、注册时间、更新时间、到期时间、IANA_ID、域名状态、DNS、DNSSEC、数据库更新时间
  3. 域名存在的时间进行高亮展示
  4. 支持查询备案信息
  5. ……

其中,

  1. Whois信息的获取:通过Python的一个库,叫 whois21,是直接拉取whois根数据库,非调用第三方接口
  2. ICP备案信息的获取:通过 夏柔免费API 进行获取。
  3. 价格查询:通过 tian.hu 的API进行获取

3.4 部署

可以进行傻瓜式操作,用宝塔里的Python项目管理,部署起来倒也没什么复杂的。

在这里简单贴一下我的配置:

4. 展示

演示站点:https://whois.yiove.com/

image-20231014095414120image-20231014095450074
image-20231014095509932image-20231014095523635

5. 结语

程序并没有经过大量的测试,可能存在很多瑕疵,如果有时间会进行完善。

当然了,如果你有什么问题可以提出来,但是请注意说话的态度,谢谢。

欢迎有疑惑在勿埋我心评论区留言。

无标签
打赏
评论区
头像
    头像
    楚狂人
      

    感谢博主无私分享,但是我flask和flask-caching都安装了,启动时一直提示项目失败……

      头像
      @楚狂人

      https://pd.qq.com/s/ka630p 到QQ频道聊吧,方便截图之类的。

    头像
    元哥哥
      

    您好,请问是否有伪静态规则?我的链接好像有点问题,https://domain.com/qq.com,无法通过类似链接直接访问查询。

      头像
      @元哥哥

      没有伪静态(伪静态多用于PHP写的网站),你给的信息太少了,不好判断。你是否安装了 flask-caching 这个包?

        头像
        元哥哥
          
        @勿埋我心

        flask-caching 已经安装了,但问题也还在,我也查不出问题出在哪里了

    头像
    Cheng
      

    博主,项目无法启动是咋回事呀?

      头像
      @Cheng

      无外乎那几个问题,检查Python的版本、检查依赖库是否都安装了、检查端口是否被占用,具体的看控制台的报错信息。

    头像

      

    启动文件是哪一个呢

      头像
      @吧

      看图:https://static.wusuov.com/image/2023/10/42ca92cf054858b4011ee032d455eeb6.png

        头像

          
        @勿埋我心

        好的,感谢

    头像
    .yyyyy
      

    我为啥部署部署就不动了

    头像
    多牛网
      

    学习一下~

    头像
    大魔王
      

    真棒!!!

    头像
    X
      

    佬最新的代码数据源是哪里的呢?

      头像
      @X

      现在是直接访问根服务器获取对应的whois服务器,再从whois服务器获取域名信息。

    头像
    沐辰
      

    感谢大佬

文章目录