ENS未注册域名批量查询
0. 简介
去年,我在阿里云那里购买了域名cvtutorials.com(一口气买了10年的:p),打算在这个网站以及自己的公众号:机器视觉全栈er上输出机器视觉领域文章,跌跌撞撞已经有大半年了。
由于不可抗因素,部分地区访问网站无法显示界面,我也无能为力:p
回过头来看,我选的域名还是蛮好的嘛(厚着脸皮),cv指的是计算机视觉,后面的tutorials意思是教程,你要是问我为啥没选mvtutorials,正好和机器视觉全栈er有呼应啊?那是因为我考虑到mv还有music video之意,所以就避开了。
在选取域名的时候,还用上了阿里云的批量查询未注册域名的功能。恰好:p,我有机会接触到了web3.0,也想给自己的网站搞个web3.0时代的域名。首先我就利用python自己写了个代码实现web3.0域名的批量查询,看看域名是否已经注册了,看看能不能捡个漏。代码(代码获取方式直接到最后
)实现的主要组成部分如下:
- 将序列化文件作为输入生成web3.0域名(我从网上下载了英语词典里面有英语常用词汇)
- 使用Selinum模拟用户对浏览器进行操作
- 多进程技术节省未注册域名批量查询时间
1. web 3.0及ENS域名
web3.0是web2.0和区块链的结合。和web2.0不同的是,web3.0时代的数据和内容不会被少数的大型科技公司垄断,会被参与者自己掌握。
web 1.0:1991~2004
web 2.0:2004~?
web 3.0:2014~?
web3.0时代,基于以太坊开发的Dapp层出不穷。和web2.0时代用可读性好的域名代替IP地址类似,web3.0时代,用可读性好的域名去替代地址(我个人觉得这个钱包地址类似身份证是你的身份),ENS就是其中的代表性的域名服务。ENS全称是Ethereum Name Service(以太坊域名服务),是从以太坊基金会孵化出来的。
2. 序列化文件生成域名
我们打开浏览器,在地址栏中输入app.ens.domains,可以看到如下界面:
在搜索框中输入cvtutorials,我们可以看到cvtutorials.eth还没有注册:p(Available表示没有被注册)
通过地址栏可以看出,为了想验证某个域名是否被注册,可以直接访问https://app.ens.domain/search/<domain_name>
地址即可。首先,我们需要批量生成我们想要探查的域名,代码如下:
import csv
# 访问域名的前缀
base_url = "https://app.ens.domains/search/"
# 从words5_ori.csv文件中获取单词用来批量生成域名
words5_ori = []
csv_reader = csv.reader(open("./words5_ori.csv"))
for line in csv_reader:
words5_ori