diff --git a/pythonwhois/parse.py b/pythonwhois/parse.py index 66217d6..0265426 100644 --- a/pythonwhois/parse.py +++ b/pythonwhois/parse.py @@ -235,7 +235,7 @@ registrant_regexes = [ "Domain Owner:\n\t(?P.+)\n\n[\s\S]*?(?:Registrant Contact:\n\t(?P.+))?\n\nRegistrant(?:'s)? (?:a|A)ddress:(?:\n\t(?P.+)\n(?:\t(?P.+)\n)?(?:\t(?P.+)\n)?\t(?P.+)\n\t(?P.+))?\n\t(?P.+)(?:\n\t(?P.+) \(Phone\)\n\t(?P.+) \(FAX\)\n\t(?P.+))?\n\n", # .ac.uk - what a mess... "Registrant ID: (?P.+)\nRegistrant: (?P.+)\nRegistrant Contact Email: (?P.+)", # .cn (CNNIC) "Registrant contact:\n (?P.+)\n (?P.*)\n (?P.+), (?P.+) (?P.+) (?P.+)\n\n", # Fabulous.com - "registrant-name:\s*(?P.+)\nregistrant-type:\s*(?P.+)\nregistrant-address:\s*(?P.+)\nregistrant-postcode:\s*(?P.+)\nregistrant-city:\s*(?P.+)\nregistrant-country:\s*(?P.+)\n(?:registrant-phone:\s*(?P.+)\n)?(?:registrant-email:\s*(?P.+)\n)?", # Hetzner + "registrant-name:\s*(?P.+)\n(registrant-organization:\s*(?P.*)\n)?registrant-type:\s*(?P.+)\nregistrant-address:\s*(?P.+)\nregistrant-postcode:\s*(?P.+)\nregistrant-city:\s*(?P.+)\nregistrant-country:\s*(?P.+)\n(?:registrant-phone:\s*(?P.+)\n)?(?:registrant-email:\s*(?P.+)\n)?", # Hetzner "Registrant Contact Information :[ ]*\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n\n", # GAL Communication "Contact Information : For Customer # [0-9]+[ ]*\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n\n", # GAL Communication alternative (private WHOIS) format? "Registrant:\n Name: (?P.+)\n City: (?P.+)\n State: (?P.+)\n Country: (?P.+)\n", # Akky (.com.mx) @@ -271,7 +271,7 @@ tech_contact_regexes = [ "Technical Contacts\n Name: (?P.+)\n(?: Organization: (?P.+)\n)? ContactID: (?P.+)\n(?: Address: (?P.+)\n(?: (?P.+)\n(?: (?P.+)\n)?)? (?P.+)\n (?P.+)\n (?P.+)\n (?P.+)\n)?(?: Created: (?P.+)\n)?(?: Last Update: (?P.+)\n)?", # nic.it // NOTE: Why does this say 'Contacts'? Can it have multiple? "Tech Name[.]* (?P.*)\n Tech Address[.]* (?P.*)\n Tech Address[.]* (?P.*)\n(?: Tech Address[.]* (?P.*)\n)? Tech Address[.]* (?P.*)\n Tech Address[.]* (?P.*)\n Tech Address[.]* (?P.*)\n Tech Address[.]* (?P.*)\n Tech Email[.]* (?P.*)\n Tech Phone[.]* (?P.*)\n Tech Fax[.]* (?P.*)", # Melbourne IT "Technical contact:\n(?: (?P.+)\n)? (?P.+)\n (?P.+)\n (?P.+)\n (?P.+), (?P.+) (?P.+) (?P.+)\n Phone: (?P.*)\n Fax: (?P.*)\n", # Fabulous.com - "tech-c-name:\s*(?P.+)\ntech-c-type:\s*(?P.+)\ntech-c-address:\s*(?P.+)\ntech-c-postcode:\s*(?P.+)\ntech-c-city:\s*(?P.+)\ntech-c-country:\s*(?P.+)\n(?:tech-c-phone:\s*(?P.+)\n)?(?:tech-c-email:\s*(?P.+)\n)?", # Hetzner + "tech-c-name:\s*(?P.+)\n(tech-c-organization:\s*(?P.*)\n)?tech-c-type:\s*(?P.+)\ntech-c-address:\s*(?P.+)\ntech-c-postcode:\s*(?P.+)\ntech-c-city:\s*(?P.+)\ntech-c-country:\s*(?P.+)\n(?:tech-c-phone:\s*(?P.+)\n)?(?:tech-c-email:\s*(?P.+)\n)?", # Hetzner "Admin Contact Information :[ ]*\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n\n", # GAL Communication " Technical contact:\n (?P.+)\n (?P.*)\n (?P.+)\n (?P.+) (?P\S+),[ ]+(?P.+)\n (?P.+)\n (?P.+)\n (?P.*)\n (?P.*)", # .am "Technical:\n\s*Name:\s*(?P.*)\n\s*Organisation:\s*(?P.*)\n\s*Language:.*\n\s*Phone:\s*(?P.*)\n\s*Fax:\s*(?P.*)\n\s*Email:\s*(?P.*)\n", # EURid @@ -304,7 +304,7 @@ admin_contact_regexes = [ "Admin Contact\n Name: (?P.+)\n(?: Organization: (?P.+)\n)? ContactID: (?P.+)\n(?: Address: (?P.+)\n(?: (?P.+)\n(?: (?P.+)\n)?)? (?P.+)\n (?P.+)\n (?P.+)\n (?P.+)\n)?(?: Created: (?P.+)\n)?(?: Last Update: (?P.+)\n)?", # nic.it "Admin Name[.]* (?P.*)\n Admin Address[.]* (?P.*)\n Admin Address[.]* (?P.*)\n(?: Admin Address[.]* (?P.*)\n)? Admin Address[.]* (?P.*)\n Admin Address[.]* (?P.*)\n Admin Address[.]* (?P.*)\n Admin Address[.]* (?P.*)\n Admin Email[.]* (?P.*)\n Admin Phone[.]* (?P.*)\n Admin Fax[.]* (?P.*)", # Melbourne IT "Administrative contact:\n(?: (?P.+)\n)? (?P.+)\n (?P.+)\n (?P.+)\n (?P.+), (?P.+) (?P.+) (?P.+)\n Phone: (?P.*)\n Fax: (?P.*)\n", # Fabulous.com - "admin-c-name:\s*(?P.+)\nadmin-c-type:\s*(?P.+)\nadmin-c-address:\s*(?P.+)\nadmin-c-postcode:\s*(?P.+)\nadmin-c-city:\s*(?P.+)\nadmin-c-country:\s*(?P.+)\n(?:admin-c-phone:\s*(?P.+)\n)?(?:admin-c-email:\s*(?P.+)\n)?", # Hetzner + "admin-c-name:\s*(?P.+)\n(admin-c-organization:\s*(?P.*)\n)?admin-c-type:\s*(?P.+)\nadmin-c-address:\s*(?P.+)\nadmin-c-postcode:\s*(?P.+)\nadmin-c-city:\s*(?P.+)\nadmin-c-country:\s*(?P.+)\n(?:admin-c-phone:\s*(?P.+)\n)?(?:admin-c-email:\s*(?P.+)\n)?", # Hetzner "Tech Contact Information :[ ]*\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n[ ]+(?P.*)\n\n", # GAL Communication " Administrative contact:\n (?P.+)\n (?P.*)\n (?P.+)\n (?P.+) (?P\S+),[ ]+(?P.+)\n (?P.+)\n (?P.+)\n (?P.*)\n (?P.*)", # .am "Administrative Contact:\n Name: (?P.+)\n City: (?P.+)\n State: (?P.+)\n Country: (?P.+)\n", # Akky (.com.mx) diff --git a/test/data/luka-netconsult.com b/test/data/luka-netconsult.com new file mode 100644 index 0000000..cf9d940 --- /dev/null +++ b/test/data/luka-netconsult.com @@ -0,0 +1,73 @@ + + +registrar_name: Hetzner Online AG (IANA ID: 828) +registrar_url: www.hetzner.de + +domain: luka-netconsult.com +creation_date: 1999-10-30 09:58:41 +expiration_date: 2014-10-30 05:58:41 +last_update: 2014-07-30 02:39:06 + +nameserver: ns.luka-netconsult.com +nameserver: ns1.first-ns.de +nameserver: robotns2.second-ns.de +nameserver: robotns3.second-ns.com +nameserver: ns.luka.de + +registrant-name: Hartmut Ludwig +registrant-organization: Hartmut Ludwig Luka netconsult GbR +registrant-type: PERSON +registrant-address: Gronauer Str 32 +registrant-postcode: 60385 +registrant-city: FrankfurtM +registrant-country: DE + +admin-c-name: Christoph Kampe +admin-c-organization: LUKA netconsult GmbH +admin-c-type: PERSON +admin-c-address: Walter-Kolb-Strasse 5-7 +admin-c-postcode: 60594 +admin-c-city: Frankfurt +admin-c-country: DE +admin-c-phone: +496948000560 +admin-c-fax: +496948000570 +admin-c-email: admin@luka.de + +tech-c-name: Christoph Kampe +tech-c-organization: LUKA netconsult GmbH +tech-c-type: PERSON +tech-c-address: Walter-Kolb-Strasse 5-7 +tech-c-postcode: 60594 +tech-c-city: Frankfurt +tech-c-country: DE +tech-c-phone: +496948000560 +tech-c-fax: +496948000570 +tech-c-email: admin@luka.de + +zone-c-name: Christoph Kampe +zone-c-organization: LUKA netconsult GmbH +zone-c-type: PERSON +zone-c-address: Walter-Kolb-Strasse 5-7 +zone-c-postcode: 60594 +zone-c-city: Frankfurt +zone-c-country: DE +zone-c-phone: +496948000560 +zone-c-fax: +496948000570 +zone-c-email: admin@luka.de + + + +-- + Domain Name: LUKA-NETCONSULT.COM + Registrar: HETZNER ONLINE AG + Whois Server: whois.your-server.de + Referral URL: http://www.hetzner.de + Name Server: NS.LUKA-NETCONSULT.COM + Name Server: NS.LUKA.DE + Name Server: NS1.FIRST-NS.DE + Name Server: ROBOTNS2.SECOND-NS.DE + Name Server: ROBOTNS3.SECOND-NS.COM + Status: ok + Updated Date: 03-apr-2014 + Creation Date: 30-oct-1999 + Expiration Date: 30-oct-2014 diff --git a/test/target_default/luka-netconsult.com b/test/target_default/luka-netconsult.com new file mode 100644 index 0000000..78f7f99 --- /dev/null +++ b/test/target_default/luka-netconsult.com @@ -0,0 +1 @@ +{"updated_date": ["2014-07-30T02:39:06"], "status": ["ok"], "contacts": {"admin": {"city": "Frankfurt", "name": "Christoph Kampe", "country": "DE", "phone": "+496948000560", "street": "Walter-Kolb-Strasse 5-7", "postalcode": "60594", "organization": "LUKA netconsult GmbH", "type": "PERSON"}, "tech": {"city": "Frankfurt", "name": "Christoph Kampe", "country": "DE", "phone": "+496948000560", "street": "Walter-Kolb-Strasse 5-7", "postalcode": "60594", "organization": "LUKA netconsult GmbH", "type": "PERSON"}, "registrant": {"city": "FrankfurtM", "name": "Hartmut Ludwig", "country": "DE", "street": "Gronauer Str 32", "postalcode": "60385", "organization": "Hartmut Ludwig Luka netconsult GbR", "type": "PERSON"}, "billing": null}, "nameservers": ["ns.luka-netconsult.com", "ns1.first-ns.de", "robotns2.second-ns.de", "robotns3.second-ns.com", "ns.luka.de"], "expiration_date": ["2014-10-30T05:58:41"], "creation_date": ["1999-10-30T00:00:00"], "raw": ["\n\nregistrar_name: Hetzner Online AG (IANA ID: 828)\nregistrar_url: www.hetzner.de\n\ndomain: luka-netconsult.com\ncreation_date: 1999-10-30 09:58:41\nexpiration_date: 2014-10-30 05:58:41\nlast_update: 2014-07-30 02:39:06\n\nnameserver: ns.luka-netconsult.com\nnameserver: ns1.first-ns.de\nnameserver: robotns2.second-ns.de\nnameserver: robotns3.second-ns.com\nnameserver: ns.luka.de\n\nregistrant-name: Hartmut Ludwig\nregistrant-organization: Hartmut Ludwig Luka netconsult GbR\nregistrant-type: PERSON\nregistrant-address: Gronauer Str 32\nregistrant-postcode: 60385\nregistrant-city: FrankfurtM\nregistrant-country: DE\n\nadmin-c-name: Christoph Kampe\nadmin-c-organization: LUKA netconsult GmbH\nadmin-c-type: PERSON\nadmin-c-address: Walter-Kolb-Strasse 5-7\nadmin-c-postcode: 60594\nadmin-c-city: Frankfurt\nadmin-c-country: DE\nadmin-c-phone: +496948000560\nadmin-c-fax: +496948000570\nadmin-c-email: admin@luka.de\n\ntech-c-name: Christoph Kampe\ntech-c-organization: LUKA netconsult GmbH\ntech-c-type: PERSON\ntech-c-address: Walter-Kolb-Strasse 5-7\ntech-c-postcode: 60594\ntech-c-city: Frankfurt\ntech-c-country: DE\ntech-c-phone: +496948000560\ntech-c-fax: +496948000570\ntech-c-email: admin@luka.de\n\nzone-c-name: Christoph Kampe\nzone-c-organization: LUKA netconsult GmbH\nzone-c-type: PERSON\nzone-c-address: Walter-Kolb-Strasse 5-7\nzone-c-postcode: 60594\nzone-c-city: Frankfurt\nzone-c-country: DE\nzone-c-phone: +496948000560\nzone-c-fax: +496948000570\nzone-c-email: admin@luka.de\n\n\n", " Domain Name: LUKA-NETCONSULT.COM\n Registrar: HETZNER ONLINE AG\n Whois Server: whois.your-server.de\n Referral URL: http://www.hetzner.de\n Name Server: NS.LUKA-NETCONSULT.COM\n Name Server: NS.LUKA.DE\n Name Server: NS1.FIRST-NS.DE\n Name Server: ROBOTNS2.SECOND-NS.DE\n Name Server: ROBOTNS3.SECOND-NS.COM\n Status: ok\n Updated Date: 03-apr-2014\n Creation Date: 30-oct-1999\n Expiration Date: 30-oct-2014\n"], "whois_server": ["whois.your-server.de"], "registrar": ["HETZNER ONLINE AG"], "emails": ["admin@luka.de"]} \ No newline at end of file diff --git a/test/target_normalized/luka-netconsult.com b/test/target_normalized/luka-netconsult.com new file mode 100644 index 0000000..69dc2fb --- /dev/null +++ b/test/target_normalized/luka-netconsult.com @@ -0,0 +1 @@ +{"updated_date": ["2014-07-30T02:39:06"], "status": ["ok"], "contacts": {"admin": {"city": "Frankfurt", "name": "Christoph Kampe", "country": "Germany", "phone": "+496948000560", "street": "Walter-Kolb-Strasse 5-7", "postalcode": "60594", "organization": "LUKA netconsult GmbH", "type": "PERSON"}, "tech": {"city": "Frankfurt", "name": "Christoph Kampe", "country": "Germany", "phone": "+496948000560", "street": "Walter-Kolb-Strasse 5-7", "postalcode": "60594", "organization": "LUKA netconsult GmbH", "type": "PERSON"}, "registrant": {"city": "FrankfurtM", "name": "Hartmut Ludwig", "country": "Germany", "street": "Gronauer Str 32", "postalcode": "60385", "organization": "Hartmut Ludwig Luka netconsult GbR", "type": "PERSON"}, "billing": null}, "nameservers": ["ns.luka-netconsult.com", "ns1.first-ns.de", "robotns2.second-ns.de", "robotns3.second-ns.com", "ns.luka.de"], "expiration_date": ["2014-10-30T05:58:41"], "creation_date": ["1999-10-30T00:00:00"], "raw": ["\n\nregistrar_name: Hetzner Online AG (IANA ID: 828)\nregistrar_url: www.hetzner.de\n\ndomain: luka-netconsult.com\ncreation_date: 1999-10-30 09:58:41\nexpiration_date: 2014-10-30 05:58:41\nlast_update: 2014-07-30 02:39:06\n\nnameserver: ns.luka-netconsult.com\nnameserver: ns1.first-ns.de\nnameserver: robotns2.second-ns.de\nnameserver: robotns3.second-ns.com\nnameserver: ns.luka.de\n\nregistrant-name: Hartmut Ludwig\nregistrant-organization: Hartmut Ludwig Luka netconsult GbR\nregistrant-type: PERSON\nregistrant-address: Gronauer Str 32\nregistrant-postcode: 60385\nregistrant-city: FrankfurtM\nregistrant-country: DE\n\nadmin-c-name: Christoph Kampe\nadmin-c-organization: LUKA netconsult GmbH\nadmin-c-type: PERSON\nadmin-c-address: Walter-Kolb-Strasse 5-7\nadmin-c-postcode: 60594\nadmin-c-city: Frankfurt\nadmin-c-country: DE\nadmin-c-phone: +496948000560\nadmin-c-fax: +496948000570\nadmin-c-email: admin@luka.de\n\ntech-c-name: Christoph Kampe\ntech-c-organization: LUKA netconsult GmbH\ntech-c-type: PERSON\ntech-c-address: Walter-Kolb-Strasse 5-7\ntech-c-postcode: 60594\ntech-c-city: Frankfurt\ntech-c-country: DE\ntech-c-phone: +496948000560\ntech-c-fax: +496948000570\ntech-c-email: admin@luka.de\n\nzone-c-name: Christoph Kampe\nzone-c-organization: LUKA netconsult GmbH\nzone-c-type: PERSON\nzone-c-address: Walter-Kolb-Strasse 5-7\nzone-c-postcode: 60594\nzone-c-city: Frankfurt\nzone-c-country: DE\nzone-c-phone: +496948000560\nzone-c-fax: +496948000570\nzone-c-email: admin@luka.de\n\n\n", " Domain Name: LUKA-NETCONSULT.COM\n Registrar: HETZNER ONLINE AG\n Whois Server: whois.your-server.de\n Referral URL: http://www.hetzner.de\n Name Server: NS.LUKA-NETCONSULT.COM\n Name Server: NS.LUKA.DE\n Name Server: NS1.FIRST-NS.DE\n Name Server: ROBOTNS2.SECOND-NS.DE\n Name Server: ROBOTNS3.SECOND-NS.COM\n Status: ok\n Updated Date: 03-apr-2014\n Creation Date: 30-oct-1999\n Expiration Date: 30-oct-2014\n"], "whois_server": ["whois.your-server.de"], "registrar": ["Hetzner Online AG"], "emails": ["admin@luka.de"]} \ No newline at end of file