python-whois
ライブラリには、.jp
ドメイン(ccTLD
)に対応する whois
サーバである whois.jprs.jp
が定義されています。
whois/whois/whois.py at master · richardpenman/whois
class NICClient(object):
:
JP_HOST = 'whois.jprs.jp'
:
whois.NICCLient.choose_server()
メソッドを使用して、指定ドメインの whois
サーバを調べることができます。
python
1>>> import whois
2>>>
3>>> whois.NICClient().choose_server('google.co.jp')
4'whois.jprs.jp'
5>>> whois.NICClient().choose_server('google.com')
6'com.whois-servers.net'
なので、以下の様にして実行することになるかと思います。
python
1import whois
2
3query = 'google.co.jp'
4res = whois.whois(query + '/e', whois.NICClient().choose_server(query))
5print(res)
6
7# {
8# "domain_name": "GOOGLE.CO.JP",
9# "registrant_org": "Google Japan G.K.",
10# "creation_date": "2001-03-22 00:00:00",
11# "expiration_date": null,
12# "name_servers": [
13# "ns1.google.com",
14# "ns2.google.com",
15# "ns3.google.com",
16# "ns4.google.com"
17# ],
18# "updated_date": "2023/04/01 01:05:57 (JST)",
19# "status": "Connected (2024/03/31)"
20# }
whois.jprs.jp
の場合、デフォルトではドメイン情報を日本語で出力しますが、問い合わせるドメイン名の末尾に '/e' を付加すると英語表記によるドメイン情報を返してくれます。
英語表記にする理由は、whois.whois()
メソッドの内部では whois
サーバから返されるドメイン情報をパースして辞書を作成しているのですが、パーサである whois.parser.WhoisJp
クラスでの処理が英語表記であることを前提としているためです。
ですが、whois.jprs.jp
に問い合わせる場合には '/e' を付加するという特殊処理を行うのは本末転倒かと思いますので、パーサである whois.parser.WhoisJp
クラスのコピーを作成して、内部にある正規表現を日本語表記のドメイン情報に対応させる方が適切かと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。