whois

30分プログラム、その250。Pythonドメイン検索。
海外サーバを借りて、ついでにもう一つドメインを取得しようかと考えている。とりあえず、空いてて格好いいドメインがないか探してみる。
毎回、Webインタフェースから検索するのも嫌なので、コマンドラインからできるようにしてみた。でもwhois使って、foo.comとfoo.orgとfoo.netと(略)と探すのは面倒なので、トップレベルドメイン(.comとかの部分)は自動でおぎなうようにしてみた。

ドメイン検索はwhoisコマンドを使っているんだけど、トップレベルドメインによって応答が違ってすごく嫌。統一してくれよ。あるいは、なんかオプションがあるのか?

使い方

$ python whois-ex.py hogewiki
hogewiki.com
hogewiki.org
hogewiki.net
hogewiki.us
hogewiki.biz
hogewiki.info

ソースコード

import sys
import os

def is_own(domain):
  """check 'domain' is own by anyone"""
  # popen: http://docs.python.org/lib/os-newstreams.html
  result = os.popen('whois -Q %s' % domain).read()
  return (result.find('No match') == -1 and 
      result.find('Not found') == -1 and 
      result.find('NOT FOUND') == -1)

def is_available(name):
  l = []
  for tld in ('.com','.org','.net','.us','.biz','.info'):
    if not is_own(name+tld):
     print name+tld 
  l

names = sys.argv[1:]

if len(names) == 0:
  for name in sys.stdin:
    is_available(name[0:-1])
else:
  for name in sys.argv[1:]:
    is_available(name)