全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 4654|回复: 35
打印 上一主题 下一主题

[疑问] Whois Search 优化伪静态 添加IDN支持

  [复制链接]
跳转到指定楼层
1#
发表于 2021-7-26 00:58:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 阿威 于 2021-7-29 02:02 编辑

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

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

下载: whois_search_fixed_0.3.zip (17.75 KB, 下载次数: 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]
复制代码
31#
发表于 2021-7-30 06:19:28 | 只看该作者
好东西,做个记号
30#
 楼主| 发表于 2021-7-30 04:15:58 | 只看该作者
Showfom 发表于 2021-7-29 20:33
还有个别 RIR 转移的 IP,需要查询两次 whois 服务器,和域名一样

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

https://cao.ee/116.202.0.0

目前的做法是,查询多次,然后剔除一些包含指定关键词的结果,例如您提到的这个例子,其中会包含"transferred to the",最后返回RIPE的结果
29#
发表于 2021-7-29 20:39:16 | 只看该作者
另外从 whois 抓取的效率和性能太低,建议一些现代化的后缀和注册商可以用 RDAP 直接从返回的 json 里抓

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

IP 和 ASN 也一样

点评

感谢  发表于 2021-7-30 04:04
28#
发表于 2021-7-29 20:38:55 | 只看该作者
我看不懂,但我大受震撼
27#
发表于 2021-7-29 20:33:59 | 只看该作者
阿威 发表于 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 再查询一次

这些列表不好找,需要自己维护
26#
发表于 2021-7-27 21:10:11 | 只看该作者
双响 发表于 2021-7-27 20:16
同样。解决了说一声。

辛苦了
25#
 楼主| 发表于 2021-7-27 20:29:03 | 只看该作者
Showfom 发表于 2021-7-27 20:10
再来个查询 IP 和 ASN 的呗

对应的 whois 服务器列表

这两个我收藏一下,感谢

另外IP和ASN的正则我在写了,有点难搞写,这个轮子有点乱,想乘着入门学习的新鲜劲儿重构一个。
24#
发表于 2021-7-27 20:16:13 | 只看该作者
超级无敌小马甲 发表于 2021-7-27 19:35
我只保留了

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

同样。解决了说一声。

点评

辛苦层主重新看一下主贴,更新0.3了,看完更新内容再升级。  发表于 2021-7-27 20:30
23#
发表于 2021-7-27 20:10:57 | 只看该作者
再来个查询 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-12-12 17:00 , Processed in 0.106941 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表