No project description provided
Project description
python whois parser command and library, that use template text parser(ttp).
Feture
Parsing is based on text templates, making it easy to add target domains.
Local language information is also subject to management.
But, currently under development, the status is as follows.
Some domains are not supported
Time and time zone information may be in text format
May contain unnecessary data
Install
git clone https://github.com/blacknon/pywhois2
cd pywhois2
pip install ./
Usage
Command
$ whois2 myna.go.jp | jq
{
"updated": "2023/02/01 01:11:56 +0900",
"created": "2022/01/06 00:00:00 +0900",
"tech_name": "KA35357JP",
"registrant_name": "KA35357JP",
"registrant_organization_type": "Government",
"registrant_organization_type_local": "政府機関",
"registrant_organization": "Accounting Division,Digital Agency",
"registrant_organization_local": "デジタル庁 戦略・組織グループ会計担当",
"registrant_organization_local2": "でじたるちょう せんりゃくそしきぐるーぷ かいけいたんとう",
"domain_name": "myna.go.jp",
"name_servers": [
"ns-1048.awsdns-03.org",
"ns-1605.awsdns-08.co.uk",
"ns-680.awsdns-21.net",
"ns-432.awsdns-54.com"
],
"status": {
"ok": true,
"registered": false,
"connected": true,
"user_reserved": false,
"advance_registered": false,
"renamed": false,
"to_be_deleted": false,
"deleted": false,
"negotiated": false
}
}
$ whois2 google.co.kr | jq
{
"publish_status": "Y",
"expiration": "2024/07/28 00:00:00 +0828",
"updated": "2010/10/04 00:00:00 +0828",
"created": "1999/07/28 00:00:00 +0828",
"admin_phone": "82.25319000",
"admin_email": "dns-admin@google.com",
"registrant_zip_code": "135984",
"registrant_address": "22nd Floor Gangnam Finance Center 737, Yeoksam-dong Kangnam-ku Seoul",
"registrant_name": "Google Korea, LLC",
"domain_name": "google.co.kr",
"registrant_address_local": "서울시 강남구 역삼동 737 강남파이낸스센터 22층",
"registrant_name_local": "구글코리아유한회사",
"dnssec": "unsigned",
"name_servers": [
"ns1.google.com",
"ns2.google.com",
"ns3.google.com",
"ns4.google.com"
]
}
$ whois2 google.com | jq
{
"dnssec": "unsigned",
"tech_email": "Select Request Email Form at https://domains.markmonitor.com/whois/google.com",
"tech_country": "US",
"tech_organization": "Google LLC",
"admin_email": "Select Request Email Form at https://domains.markmonitor.com/whois/google.com",
"admin_country": "US",
"admin_organization": "Google LLC",
"registrant_email": "Select Request Email Form at https://domains.markmonitor.com/whois/google.com",
"registrant_country": "US",
"registrant_organization": "Google LLC",
"registrar_phone": "+1.2086851750",
"registrar_email": "abusecomplaints@markmonitor.com",
"registrar_id": "292",
"registrar_name": "MarkMonitor, Inc.",
"expiration": "2028/09/13 07:00:00 +0000",
"created": "1997/09/15 07:00:00 +0000",
"updated": "2019/09/09 15:39:04 +0000",
"registrar_whois_url": "http://www.markmonitor.com",
"registrar_whois_server": "whois.markmonitor.com",
"registry_domain_id": "2138514_domain_com-vrsn",
"domain_name": "google.com",
"registrant_address": "CA",
"admin_address": "CA",
"tech_address": "CA",
"name_servers": [
"ns1.google.com",
"ns3.google.com",
"ns4.google.com",
"ns2.google.com"
],
"status": {
"auto_renew_period": false,
"inactive": false,
"ok": false,
"pending_create": false,
"pending_delete": false,
"pending_renew": false,
"pending_restore": false,
"pending_transfer": false,
"pending_update": false,
"redemption_period": false,
"renew_period": false,
"server_delete_prohibited": true,
"server_hold": false,
"server_renew_prohibited": false,
"server_transfer_prohibited": true,
"server_update_prohibited": true,
"transfer_period": false,
"client_delete_prohibited": true,
"client_hold": false,
"client_renew_prohibited": false,
"client_transfer_prohibited": true,
"client_update_prohibited": true
}
}
Library
from pywhois2 import Whois
import json
import datetime
def json_serial(obj):
if isinstance(obj, (datetime.datetime, datetime.date)):
return obj.strftime("%Y/%m/%d %H:%M:%S %z")
# 上記以外はサポート対象外.
raise TypeError("Type %s not serializable" % type(obj))
whois = Whois('unko.co.jp')
result = whois.get()
print(json.dumps(result, default=json_serial))
use template file(ttp command)
$ git clone https://github.com/blacknon/pywhois2
$ cd pywhois2
$ whois google.jp | awk '/^# whois.jprs.jp/,/FAX番号/{print}' > /tmp/example.jp.txt
$ ttp -d /tmp/example.jp.txt -t ./pywhois2/templates/cctld/jp.tpl -o raw
[{'contact_zip_code': '94043', 'contact_email': 'dns-admin@google.com', 'contact_name': 'Google LLC', 'contact_name_local': 'Google LLC', 'updated': datetime.datetime(2023, 6, 1, 1, 5, 7, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400))), 'expiration': datetime.datetime(2024, 5, 31, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400))), 'created': datetime.datetime(2005, 5, 30, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400))), 'registrant_name': 'Google LLC', 'registrant_name_local': 'Google LLC', 'domain_name': 'google.jp', 'name_servers': ['ns1.google.com', 'ns2.google.com', 'ns3.google.com', 'ns4.google.com'], 'status': {'ok': True, 'hold': False, 'to_be_suspended': False, 'suspended': False}, 'contact_address': 'Mountain View, 1600 Amphitheatre Parkway, CA', 'contact_fax': '16502530001', 'contact_phone': '16502530000', 'contact_address_local': 'Mountain View 1600 Amphitheatre Parkway CA'}]
Unsupported ccTLD domains
bw
ee
eu
fi
ge
gf
gg
hk
hu
id
il
im
ir
is
it
je
kg
kz
lt
lu
lv
md
mo
mq
mx
nc
nl
no
nu
om
pf
pk
pl
qa
ro
rs
ru
sa
se
sg
si
sk
sm
sn
st
sy
tc
tg
th
tm
tn
to
tr
tw
ua
ug
uk
uz
ye
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pywhois2-0.1.1.tar.gz
(47.5 kB
view hashes)
Built Distribution
pywhois2-0.1.1-py3-none-any.whl
(126.5 kB
view hashes)