mirror of
https://github.com/joepie91/python-whois.git
synced 2026-02-04 03:16:51 -06:00
Hetzner support and version bump
This commit is contained in:
parent
289bcf1717
commit
cddc787b69
@ -48,6 +48,7 @@ grammar = {
|
||||
'Expired\s?[.]*:?\s*?(?P<val>.+)',
|
||||
'Domain Expiration Date\s?[.]*:?\s*?(?P<val>.+)',
|
||||
'paid-till:\s*(?P<val>.+)',
|
||||
'expiration_date:\s*(?P<val>.+)',
|
||||
'renewal:\s*(?P<val>.+)',
|
||||
'expire:\s*(?P<val>.+)'],
|
||||
'updated_date': ['\[Last Updated\]\s*(?P<val>.+)',
|
||||
@ -66,6 +67,7 @@ grammar = {
|
||||
'Record last updated\s?[.]*:\s?(?P<val>.+)',
|
||||
'Modified\s?[.]*:\s?(?P<val>.+)',
|
||||
'(C|c)hanged:\s*(?P<val>.+)',
|
||||
'last_update:\s*(?P<val>.+)',
|
||||
'Last Update\s?[.]*:\s?(?P<val>.+)',
|
||||
'Last updated on (?P<val>.+) [a-z]{3,4}',
|
||||
'Last updated:\s*(?P<val>.+)',
|
||||
@ -480,6 +482,7 @@ def parse_registrants(data):
|
||||
" Registrant:\n (?P<name>.+)\n\n Registrant type:\n .*\n\n Registrant's address:\n The registrant .* opted to have", # Nominet (.uk) with hidden address
|
||||
" Registrant:\n (?P<name>.+)\n\n Registrant type:\n .*\n\n Registrant's address:\n (?P<street1>.+)\n(?: (?P<street2>.+)\n)?(?: (?P<street3>.+)\n)? (?P<city>.+)\n (?P<state>.+)\n (?P<postalcode>.+)\n (?P<country>.+)", # Nominet (.uk) with visible address
|
||||
"Registrant contact:\n (?P<name>.+)\n (?P<street>.*)\n (?P<city>.+), (?P<state>.+) (?P<postalcode>.+) (?P<country>.+)\n\n", # Fabulous.com
|
||||
"registrant-name:\s*(?P<name>.+)\nregistrant-type:\s*(?P<type>.+)\nregistrant-address:\s*(?P<street>.+)\nregistrant-postcode:\s*(?P<postalcode>.+)\nregistrant-city:\s*(?P<city>.+)\nregistrant-country:\s*(?P<country>.+)\n(?:registrant-phone:\s*(?P<phone>.+)\n)?(?:registrant-email:\s*(?P<email>.+)\n)?", # Hetzner
|
||||
"Registrant Contact Information :[ ]*\n[ ]+(?P<firstname>.*)\n[ ]+(?P<lastname>.*)\n[ ]+(?P<organization>.*)\n[ ]+(?P<email>.*)\n[ ]+(?P<street>.*)\n[ ]+(?P<city>.*)\n[ ]+(?P<postalcode>.*)\n[ ]+(?P<phone>.*)\n[ ]+(?P<fax>.*)\n\n", # GAL Communication
|
||||
"Contact Information : For Customer # [0-9]+[ ]*\n[ ]+(?P<firstname>.*)\n[ ]+(?P<lastname>.*)\n[ ]+(?P<organization>.*)\n[ ]+(?P<email>.*)\n[ ]+(?P<street>.*)\n[ ]+(?P<city>.*)\n[ ]+(?P<postalcode>.*)\n[ ]+(?P<phone>.*)\n[ ]+(?P<fax>.*)\n\n", # GAL Communication alternative (private WHOIS) format?
|
||||
" Registrant:\n (?P<name>.+)\n (?P<street>.+)\n (?P<city>.+) (?P<state>\S+),[ ]+(?P<postalcode>.+)\n (?P<country>.+)", # .am
|
||||
@ -505,6 +508,7 @@ def parse_registrants(data):
|
||||
"Technical Contact ID:[ ]*(?P<handle>.*)\nTechnical Contact Name:[ ]*(?P<name>.*)\n(?:Technical Contact Organization:[ ]*(?P<organization>.*)\n)?Technical Contact Address1:[ ]*(?P<street1>.*)\n(?:Technical Contact Address2:[ ]*(?P<street2>.*)\n)?(?:Technical Contact Address3:[ ]*(?P<street3>.*)\n)?Technical Contact City:[ ]*(?P<city>.*)\nTechnical Contact State/Province:[ ]*(?P<state>.*)\nTechnical Contact Postal Code:[ ]*(?P<postalcode>.*)\nTechnical Contact Country:[ ]*(?P<country>.*)\nTechnical Contact Country Code:[ ]*.*\nTechnical Contact Phone Number:[ ]*(?P<phone>.*)\n(?:Technical Contact Facsimile Number:[ ]*(?P<facsimile>.*)\n)?Technical Contact Email:[ ]*(?P<email>.*)", # .US (NeuStar)
|
||||
"Tech Name[.]* (?P<name>.*)\n Tech Address[.]* (?P<street1>.*)\n Tech Address[.]* (?P<street2>.*)\n(?: Tech Address[.]* (?P<street3>.*)\n)? Tech Address[.]* (?P<city>.*)\n Tech Address[.]* (?P<postalcode>.*)\n Tech Address[.]* (?P<state>.*)\n Tech Address[.]* (?P<country>.*)\n Tech Email[.]* (?P<email>.*)\n Tech Phone[.]* (?P<phone>.*)\n Tech Fax[.]* (?P<fax>.*)", # Melbourne IT
|
||||
"Technical contact:\n(?: (?P<organization>.+)\n)? (?P<name>.+)\n (?P<email>.+)\n (?P<street>.+)\n (?P<city>.+), (?P<state>.+) (?P<postalcode>.+) (?P<country>.+)\n Phone: (?P<phone>.*)\n Fax: (?P<fax>.*)\n", # Fabulous.com
|
||||
"tech-c-name:\s*(?P<name>.+)\ntech-c-type:\s*(?P<type>.+)\ntech-c-address:\s*(?P<street>.+)\ntech-c-postcode:\s*(?P<postalcode>.+)\ntech-c-city:\s*(?P<city>.+)\ntech-c-country:\s*(?P<country>.+)\n(?:tech-c-phone:\s*(?P<phone>.+)\n)?(?:tech-c-email:\s*(?P<email>.+)\n)?", # Hetzner
|
||||
"Admin Contact Information :[ ]*\n[ ]+(?P<firstname>.*)\n[ ]+(?P<lastname>.*)\n[ ]+(?P<organization>.*)\n[ ]+(?P<email>.*)\n[ ]+(?P<street>.*)\n[ ]+(?P<city>.*)\n[ ]+(?P<postalcode>.*)\n[ ]+(?P<phone>.*)\n[ ]+(?P<fax>.*)\n\n", # GAL Communication
|
||||
" Technical contact:\n (?P<name>.+)\n (?P<organization>.*)\n (?P<street>.+)\n (?P<city>.+) (?P<state>\S+),[ ]+(?P<postalcode>.+)\n (?P<country>.+)\n (?P<email>.+)\n (?P<phone>.*)\n (?P<fax>.*)", # .am
|
||||
"\[Zone-C\]\nType: (?P<type>.+)\nName: (?P<name>.+)\n(Organisation: (?P<organization>.+)\n){0,1}(Address: (?P<street1>.+)\n){1}(Address: (?P<street2>.+)\n){0,1}(Address: (?P<street3>.+)\n){0,1}(Address: (?P<street4>.+)\n){0,1}PostalCode: (?P<postalcode>.+)\nCity: (?P<city>.+)\nCountryCode: (?P<country>[A-Za-z]{2})\nPhone: (?P<phone>.+)\nFax: (?P<fax>.+)\nEmail: (?P<email>.+)\n(Remarks: (?P<remark>.+)\n){0,1}Changed: (?P<changed>.+)", # DeNIC
|
||||
@ -525,6 +529,7 @@ def parse_registrants(data):
|
||||
"Administrative Contact ID:[ ]*(?P<handle>.*)\nAdministrative Contact Name:[ ]*(?P<name>.*)\n(?:Administrative Contact Organization:[ ]*(?P<organization>.*)\n)?Administrative Contact Address1:[ ]*(?P<street1>.*)\n(?:Administrative Contact Address2:[ ]*(?P<street2>.*)\n)?(?:Administrative Contact Address3:[ ]*(?P<street3>.*)\n)?Administrative Contact City:[ ]*(?P<city>.*)\nAdministrative Contact State/Province:[ ]*(?P<state>.*)\nAdministrative Contact Postal Code:[ ]*(?P<postalcode>.*)\nAdministrative Contact Country:[ ]*(?P<country>.*)\nAdministrative Contact Country Code:[ ]*.*\nAdministrative Contact Phone Number:[ ]*(?P<phone>.*)\n(?:Administrative Contact Facsimile Number:[ ]*(?P<facsimile>.*)\n)?Administrative Contact Email:[ ]*(?P<email>.*)", # .US (NeuStar)
|
||||
"Admin Name[.]* (?P<name>.*)\n Admin Address[.]* (?P<street1>.*)\n Admin Address[.]* (?P<street2>.*)\n(?: Admin Address[.]* (?P<street3>.*)\n)? Admin Address[.]* (?P<city>.*)\n Admin Address[.]* (?P<postalcode>.*)\n Admin Address[.]* (?P<state>.*)\n Admin Address[.]* (?P<country>.*)\n Admin Email[.]* (?P<email>.*)\n Admin Phone[.]* (?P<phone>.*)\n Admin Fax[.]* (?P<fax>.*)", # Melbourne IT
|
||||
"Administrative contact:\n(?: (?P<organization>.+)\n)? (?P<name>.+)\n (?P<email>.+)\n (?P<street>.+)\n (?P<city>.+), (?P<state>.+) (?P<postalcode>.+) (?P<country>.+)\n Phone: (?P<phone>.*)\n Fax: (?P<fax>.*)\n", # Fabulous.com
|
||||
"admin-c-name:\s*(?P<name>.+)\nadmin-c-type:\s*(?P<type>.+)\nadmin-c-address:\s*(?P<street>.+)\nadmin-c-postcode:\s*(?P<postalcode>.+)\nadmin-c-city:\s*(?P<city>.+)\nadmin-c-country:\s*(?P<country>.+)\n(?:admin-c-phone:\s*(?P<phone>.+)\n)?(?:admin-c-email:\s*(?P<email>.+)\n)?", # Hetzner
|
||||
"Tech Contact Information :[ ]*\n[ ]+(?P<firstname>.*)\n[ ]+(?P<lastname>.*)\n[ ]+(?P<organization>.*)\n[ ]+(?P<email>.*)\n[ ]+(?P<street>.*)\n[ ]+(?P<city>.*)\n[ ]+(?P<postalcode>.*)\n[ ]+(?P<phone>.*)\n[ ]+(?P<fax>.*)\n\n", # GAL Communication
|
||||
" Administrative contact:\n (?P<name>.+)\n (?P<organization>.*)\n (?P<street>.+)\n (?P<city>.+) (?P<state>\S+),[ ]+(?P<postalcode>.+)\n (?P<country>.+)\n (?P<email>.+)\n (?P<phone>.*)\n (?P<fax>.*)", # .am
|
||||
"\[Tech-C\]\nType: (?P<type>.+)\nName: (?P<name>.+)\n(Organisation: (?P<organization>.+)\n){0,1}(Address: (?P<street1>.+)\n){1}(Address: (?P<street2>.+)\n){0,1}(Address: (?P<street3>.+)\n){0,1}(Address: (?P<street4>.+)\n){0,1}PostalCode: (?P<postalcode>.+)\nCity: (?P<city>.+)\nCountryCode: (?P<country>[A-Za-z]{2})\nPhone: (?P<phone>.+)\nFax: (?P<fax>.+)\nEmail: (?P<email>.+)\n(Remarks: (?P<remark>.+)\n){0,1}Changed: (?P<changed>.+)", # DeNIC
|
||||
|
||||
2
setup.py
2
setup.py
@ -1,7 +1,7 @@
|
||||
from setuptools import setup
|
||||
|
||||
setup(name='pythonwhois',
|
||||
version='2.1.1',
|
||||
version='2.1.2',
|
||||
description='Module for retrieving and parsing the WHOIS data for a domain. Supports most domains. No dependencies.',
|
||||
author='Sven Slootweg',
|
||||
author_email='pythonwhois@cryto.net',
|
||||
|
||||
99
test/data/ismtgoxdeadyet.com
Normal file
99
test/data/ismtgoxdeadyet.com
Normal file
@ -0,0 +1,99 @@
|
||||
|
||||
|
||||
domain: ismtgoxdeadyet.com
|
||||
expiration_date: 2015-02-11 00:12:48
|
||||
last_update: 2014-02-15 00:59:45
|
||||
|
||||
nameserver: ns1.cyon.ch
|
||||
nameserver: ns2.cyon.ch
|
||||
|
||||
registrant-name: Christian Bock
|
||||
registrant-type: PERSON
|
||||
registrant-address: Schopenhauerstr. 43
|
||||
registrant-postcode: 80807
|
||||
registrant-city: Muenchen
|
||||
registrant-country: DE
|
||||
|
||||
admin-c-name: Christian Bock
|
||||
admin-c-type: PERSON
|
||||
admin-c-address: Schopenhauerstr. 43
|
||||
admin-c-postcode: 80807
|
||||
admin-c-city: Muenchen
|
||||
admin-c-country: DE
|
||||
admin-c-phone: +498935061638
|
||||
admin-c-email: bock@imap.ch
|
||||
|
||||
tech-c-name: Christian Bock
|
||||
tech-c-type: PERSON
|
||||
tech-c-address: Schopenhauerstr. 43
|
||||
tech-c-postcode: 80807
|
||||
tech-c-city: Muenchen
|
||||
tech-c-country: DE
|
||||
tech-c-phone: +498935061638
|
||||
tech-c-email: bock@imap.ch
|
||||
|
||||
zone-c-name: Christian Bock
|
||||
zone-c-type: PERSON
|
||||
zone-c-address: Schopenhauerstr. 43
|
||||
zone-c-postcode: 80807
|
||||
zone-c-city: Muenchen
|
||||
zone-c-country: DE
|
||||
zone-c-phone: +498935061638
|
||||
zone-c-email: bock@imap.ch
|
||||
|
||||
|
||||
|
||||
--
|
||||
|
||||
Whois Server Version 2.0
|
||||
|
||||
Domain names in the .com and .net domains can now be registered
|
||||
with many different competing registrars. Go to http://www.internic.net
|
||||
for detailed information.
|
||||
|
||||
Domain Name: ISMTGOXDEADYET.COM
|
||||
Registrar: HETZNER ONLINE AG
|
||||
Whois Server: whois.your-server.de
|
||||
Referral URL: http://www.hetzner.de
|
||||
Name Server: NS1.CYON.CH
|
||||
Name Server: NS2.CYON.CH
|
||||
Status: ok
|
||||
Updated Date: 10-feb-2014
|
||||
Creation Date: 10-feb-2014
|
||||
Expiration Date: 10-feb-2015
|
||||
|
||||
>>> Last update of whois database: Sun, 02 Mar 2014 00:05:42 UTC <<<
|
||||
|
||||
NOTICE: The expiration date displayed in this record is the date the
|
||||
registrar's sponsorship of the domain name registration in the registry is
|
||||
currently set to expire. This date does not necessarily reflect the expiration
|
||||
date of the domain name registrant's agreement with the sponsoring
|
||||
registrar. Users may consult the sponsoring registrar's Whois database to
|
||||
view the registrar's reported date of expiration for this registration.
|
||||
|
||||
TERMS OF USE: You are not authorized to access or query our Whois
|
||||
database through the use of electronic processes that are high-volume and
|
||||
automated except as reasonably necessary to register domain names or
|
||||
modify existing registrations; the Data in VeriSign Global Registry
|
||||
Services' ("VeriSign") Whois database is provided by VeriSign for
|
||||
information purposes only, and to assist persons in obtaining information
|
||||
about or related to a domain name registration record. VeriSign does not
|
||||
guarantee its accuracy. By submitting a Whois query, you agree to abide
|
||||
by the following terms of use: You agree that you may use this Data only
|
||||
for lawful purposes and that under no circumstances will you use this Data
|
||||
to: (1) allow, enable, or otherwise support the transmission of mass
|
||||
unsolicited, commercial advertising or solicitations via e-mail, telephone,
|
||||
or facsimile; or (2) enable high volume, automated, electronic processes
|
||||
that apply to VeriSign (or its computer systems). The compilation,
|
||||
repackaging, dissemination or other use of this Data is expressly
|
||||
prohibited without the prior written consent of VeriSign. You agree not to
|
||||
use electronic processes that are automated and high-volume to access or
|
||||
query the Whois database except as reasonably necessary to register
|
||||
domain names or modify existing registrations. VeriSign reserves the right
|
||||
to restrict your access to the Whois database in its sole discretion to ensure
|
||||
operational stability. VeriSign may restrict or terminate your access to the
|
||||
Whois database for failure to abide by these terms of use. VeriSign
|
||||
reserves the right to modify these terms at any time.
|
||||
|
||||
The Registry database contains ONLY .COM, .NET, .EDU domains and
|
||||
Registrars.
|
||||
1
test/target_default/ismtgoxdeadyet.com
Normal file
1
test/target_default/ismtgoxdeadyet.com
Normal file
File diff suppressed because one or more lines are too long
1
test/target_normalized/ismtgoxdeadyet.com
Normal file
1
test/target_normalized/ismtgoxdeadyet.com
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user