Pythonで3文字の空きドメインを全て取得する方法

新しいドメインが欲しいと思い立ち、どうせ取得するならなるべく短いドメイン名が欲しかった。サブドメイン前提の運用だったり、まだサイト名が全く決まってない人なんかはそう思っている人も多いはず。

しかし本当かどうか定かでは無いが噂では3文字の.comドメインなんかは全て取得されてしまっているとか。

なので確認の為にもとりあえず3文字の空きドメインを全て取得してみた。

Pythonで空きドメイン検索

概要としてはPython-whoisというライブラリで3文字の組み合わせを全て検索して誰も取得していないドメインを表示するという単純なもの。

from whois import whois
import itertools
from tqdm import tqdm

chars = 'abcdefghijklmnopqrstuvwxyz0123456789-'
combnation = [''.join(i) for i in itertools.product(chars, repeat=3) if not (i[0] == '-' or i[-1] == '-')]
comb = list(map(lambda x: x + '.net' , combnation))

for c in tqdm(comb):
 try:
  whois(c)
 except Exception as e:
  print(c)

先にpip install python-whoisでライブラリをインストールしておく。conda環境の場合はcondaでインストール。

3文字のドメインの組み合わせの条件として先頭、または末尾にハイフンが含まないこと。ちなみに5文字以上だと3、4文字目にハイフンが連続していないことという条件がある。
なのでその条件を除外した3文字の組み合わせをitertoolsで出力。

それをループで全てwhois検索して取得されていない場合はそのドメインを表示する。

.comや.netは取得されていないドメインを検索するとエラーが返ってくるが.org、.xyzドメインはnullが返ってくる。なのでエラーの場合は上記のtry を使い、nullの場合はif domain_name is Noneを使う。

tqdmは処理の進行状況を表示するライブラリなので必要がなければ消してよい。

あとはpc上でもサーバー上でも実行してファイルに書き出したりする。私の場合はwordpressのrest apiで自動でアップロードしている。

現在はnet、org、xyz3文字ドメインをリストで公開中。

「ドメイン」の記事一覧です。

.comドメインは4文字の組み合わせをnoteで公開中。

やってみて

とりあえずcom、net、org、xyzドメインで試してみたところ、やはり3文字のcomドメインは全滅していた。netドメインも予想よりは残っていてorg、xyzドメインはかなりの数が残っていた。

時々、Error trying to connect to socket: closing socket – timed outというエラーがでて厳密には全てではないかもしれないが今のところはよしとする。