全球主机交流论坛

标题: Whois Search 优化伪静态 添加IDN支持 [打印本页]

作者: 阿威    时间: 2021-7-26 00:58
标题: Whois Search 优化伪静态 添加IDN支持
本帖最后由 阿威 于 2021-7-29 02:02 编辑

鸣谢:https://whois.gd/ http://222.ee/

原帖:https://lilynana.eu.org/thread-858087-1-1.html

下载: (, 下载次数: 346)

演示:该版本无演示站点

2021.07.27 20:20
  1. MJJ反应代码较乱,所以进行前后端分离,如果当前用的是0.1,0.2版本,谨慎更新,见谅。
  2. 暂时用一些php和JS判断语句避免"."在最前与最后所产生的错误,代码较烂,欢迎回帖优化。
  3. 取消punycode,改用php intl 扩展函数进行域名编码解码,确保服务器php环境已安装intl扩展。
  4. 取消本地jquery的js,改用百度,程序包又小了一点。
复制代码


2021.07.26 20:20
  1. 更新域名判断JS(index.php Line 87-101 ==> Line 87-106)
复制代码


主要优化:
  1. 恢复原版程序的nginx及apache伪静态规则。(压缩包内有,提供多级目录的参考规则)
  2. 恢复url的domain参数。("?q" ==>"?domain")
  3. 使用punycode,增加了对IDN编码的域名查询。//0.3以后改用php intl扩展
  4. 域名 Whois 查询服务器列表增至1853个。(Whoishub.php可自行维护)
  5. 一些前端和JS的优化。
  6. 通过JS自动去除查询输入框内包含的URL前后缀。(https://xxx.xxx/aaa/bbb/ccc ==> xxx.xxx)
复制代码


伪静态说明:
上一个分享版本根据自己的使用习惯,去除了伪静态,是因为最初使用时,开启伪静态,查询输入框输入带url前缀后缀会导致跳转到的伪静态URL无法打开,很多MJJ反应不方便,不该砍掉伪静态,所以这次优化了域名字段传递的JS,恢复了伪静态,规则压缩包内有,本贴也会贴出伪静态规则供参考,包括多级目录。

域名 Whois 查询服务器数据说明:
爬虫数据主要来源:https://www.iana.org/domains/root/db
大部分主流后缀和常见国别时可以查询的,但是不包括大部分二级国别。
实在没时间保证查询服务器数量是否最新以及可用性。
未爬到Whois服务器,填充为whois.iana.org,所以需要各位MJJ自行维护,见谅。

Nginx:
  1. #根目录:
  2. location /
  3. {
  4. if (-f $request_filename) {
  5.         break;
  6. }
  7.         rewrite ^/(.*)$ /index.php?domain=$1 last;
  8. }


  9. #多级目录,请修改index.php同级目录的对应位置:
  10. location /多级目录/
  11. {
  12. if (-f $request_filename) {
  13.         break;
  14. }
  15.         rewrite /多级目录/(.*)$ /多级目录/index.php?domain=$1 last;
  16. }
复制代码

Apache:
  1. #根目录:

  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule ^(.*)$ index.php?domain=$1 [L]


  7. #多级目录,请在程序index.php同级目录内新建.htaccess文件,并修改对应位置:
  8. RewriteEngine On
  9. RewriteBase /多级目录/
  10. RewriteCond %{REQUEST_FILENAME} !-f
  11. RewriteCond %{REQUEST_FILENAME} !-d
  12. RewriteRule ^(.*)$ index.php?domain=$1 [L]
复制代码

作者: Trojan.    时间: 2021-7-26 01:03
居然没人顶,我来支持个
作者: Darki    时间: 2021-7-26 01:04
支持,改天就换在 whois.ii.do 上
作者: 阿威    时间: 2021-7-26 01:05
Darki 发表于 2021-7-26 01:04
支持,改天就换在 whois.ii.do 上

前端点个赞,没你的好看
作者: optimism    时间: 2021-7-26 01:23
很好啊 感谢分享
作者: 炮姐的安全裤    时间: 2021-7-26 06:19
没有查ip啊
作者: ludashi    时间: 2021-7-26 07:01
mark
作者: 阿威    时间: 2021-7-26 07:08
炮姐的安全裤 发表于 2021-7-26 06:19
没有查ip啊

支持 APNIC
作者: hemake    时间: 2021-7-26 07:26
这个也不错哦 zod.cn
作者: 阿威    时间: 2021-7-26 07:34
hemake 发表于 2021-7-26 07:26
这个也不错哦 zod.cn

嗯嗯 前端可以,不支持IDN
作者: hk2r    时间: 2021-7-26 07:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: Darki    时间: 2021-7-26 08:23
阿威 发表于 2021-7-26 07:34
嗯嗯 前端可以,不支持IDN

这位朋友的,也是我之前给的
作者: 超级无敌小马甲    时间: 2021-7-26 08:47
感谢楼主的源码,感谢更新,这几天换上 WhoisW.com
作者: MoeWang    时间: 2021-7-26 09:13
本帖最后由 MoeWang 于 2021-7-26 09:38 编辑

老哥稳,火速部署
已部署 whois.moeblog.cn
作者: 双响    时间: 2021-7-27 00:56
感谢无私分享。
提个bug:
输入域名查询的时候。后面加一点是返回的404。
例如:baidu. 或者baidu.com. 就是后面加多了一点就会返回404

看了一下 whois.gd和222.ee 是没问题的。
作者: 阿威    时间: 2021-7-27 16:31
双响 发表于 2021-7-27 00:56
感谢无私分享。
提个bug:
输入域名查询的时候。后面加一点是返回的404。

伪静态的问题,宝塔把location去掉即可
作者: 本人马保国    时间: 2021-7-27 16:37
不错
作者: 三丫的    时间: 2021-7-27 16:39
支持,收藏,帮顶
作者: 我是坏虫    时间: 2021-7-27 16:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 超级无敌小马甲    时间: 2021-7-27 17:42
阿威 发表于 2021-7-27 16:31
伪静态的问题,宝塔把location去掉即可

配置文件里的吗?
作者: 阿威    时间: 2021-7-27 19:06
超级无敌小马甲 发表于 2021-7-27 17:42
配置文件里的吗?

去掉location可以解决
  1. location /
  2. {




  3. }
复制代码

作者: 超级无敌小马甲    时间: 2021-7-27 19:35
阿威 发表于 2021-7-27 19:06
去掉location可以解决

我只保留了
  1. if (-f $request_filename) {
  2.         break;
  3. }
  4.         rewrite ^/(.*)$ /index.php?domain=$1 last;
复制代码

结果查询例如:baidu.     会出现

  1. Fatal error: Uncaught Error: Class 'TrueBV\LabelOutOfBoundsException' not found in /www/wwwroot/whoisw.com/Punycode.php:81 Stack trace: #0 /www/wwwroot/whoisw.com/index.php(15): TrueBV\Punycode->encode() #1 {main} thrown in /www/wwwroot/whoisw.com/Punycode.php on line 81
复制代码

作者: Showfom    时间: 2021-7-27 20:10
再来个查询 IP 和 ASN 的呗

对应的 whois 服务器列表

https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xhtml
https://www.iana.org/assignments/as-numbers/as-numbers.xhtml#as-numbers-1
作者: 双响    时间: 2021-7-27 20:16
超级无敌小马甲 发表于 2021-7-27 19:35
我只保留了

结果查询例如:baidu.     会出现

同样。解决了说一声。
作者: 阿威    时间: 2021-7-27 20:29
Showfom 发表于 2021-7-27 20:10
再来个查询 IP 和 ASN 的呗

对应的 whois 服务器列表

这两个我收藏一下,感谢

另外IP和ASN的正则我在写了,有点难搞写,这个轮子有点乱,想乘着入门学习的新鲜劲儿重构一个。
作者: 双响    时间: 2021-7-27 21:10
双响 发表于 2021-7-27 20:16
同样。解决了说一声。

辛苦了
作者: Showfom    时间: 2021-7-29 20:33
阿威 发表于 2021-7-27 20:29
这两个我收藏一下,感谢

另外IP和ASN的正则我在写了,有点难搞写,这个轮子有点乱,想乘着入门学习的新 ...

还有个别 RIR 转移的 IP,需要查询两次 whois 服务器,和域名一样

比如 Hetzner 从 APNIC 转移到 RIPE 的 IP

116.202.0.0

默认 whois 服务器是 whois.apnic.net 实际需要去 whois.ripe.net 再查询一次

这些列表不好找,需要自己维护
作者: 天权璇玑    时间: 2021-7-29 20:38
我看不懂,但我大受震撼
作者: Showfom    时间: 2021-7-29 20:39
另外从 whois 抓取的效率和性能太低,建议一些现代化的后缀和注册商可以用 RDAP 直接从返回的 json 里抓

https://rdap.verisign.com/com/v1/domain/example.com

IP 和 ASN 也一样
作者: 阿威    时间: 2021-7-30 04:15
Showfom 发表于 2021-7-29 20:33
还有个别 RIR 转移的 IP,需要查询两次 whois 服务器,和域名一样

比如 Hetzner 从 APNIC 转移到 RIPE  ...

https://cao.ee/116.202.0.0

目前的做法是,查询多次,然后剔除一些包含指定关键词的结果,例如您提到的这个例子,其中会包含"transferred to the",最后返回RIPE的结果
作者: erno    时间: 2021-7-30 06:19
好东西,做个记号




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4