|
120 | 120 |
|
121 | 121 | ax = { |
122 | 122 | "extend": "com", |
123 | | - "domain_name": r"domain...............:\s?(.+)", |
124 | | - "registrar": r"registrar............:\s?(.+)", |
125 | | - "creation_date": r"created..............:\s?(.+)", |
126 | | - "expiration_date": r"expires..............:\s?(.+)", |
127 | | - "updated_date": r"Information Updated:\s?(.+)", |
| 123 | + "domain_name": r"domain\.+:\s*(\S+)", |
| 124 | + "registrar": r"registrar\.+:\s*(.+)", |
| 125 | + "creation_date": r"created\.+:\s*(\S+)", |
| 126 | + "expiration_date": r"expires\.+:\s*(\S+)", |
| 127 | + "updated_date": r"modified\.+:\s?(\S+)", |
| 128 | + "name_servers": r"nserver\.+:\s*(\S+)", |
| 129 | + "status": r"status\.+:\s*(\S+)", |
| 130 | + "registrant": r"Holder\s+name\.+:\s*(.+)\r?\n", # not always present see meta.ax and google.ax |
| 131 | + "registrant_country": r"country\.+:\s*(.+)\r?\n", # not always present see meta.ax and google.ax |
| 132 | + |
128 | 133 | } |
129 | 134 |
|
130 | 135 | aw = { |
131 | 136 | "extend": "nl", |
| 137 | + "name_servers": r"Domain nameservers:\s+(\S+)[ \t]*\r?\n(?:\s+(\S+))?", |
132 | 138 | } |
133 | 139 |
|
134 | 140 | # Banking TLD - ICANN |
|
445 | 451 | "creation_date": r"Domain Name Commencement Date:\s?(.+)", |
446 | 452 | "expiration_date": r"Expiry Date:\s?(.+)", |
447 | 453 | "updated_date": None, |
448 | | - "name_servers": r"Name Servers Information:\n\n(?:(\S+)\n)(?:(\S+)\n)(?:(\S+)\n)?(?:(\S+)\n)?\n?", |
| 454 | + # name servers have trailing whitespace, lines are \n only |
| 455 | + "name_servers": r"Name Servers Information:\s*(?:(\S+)[ \t]*\n)(?:(\S+)[ \t]*\n)?(?:(\S+)[ \t]*\n)?(?:(\S+)[ \t]*\n)?", |
449 | 456 | "status": None, |
450 | 457 | } |
451 | 458 |
|
|
592 | 599 | } |
593 | 600 |
|
594 | 601 | kg = { |
595 | | - "extend": None, |
596 | | - "domain_name": r"Domain\s(.+)\s\(", |
| 602 | + "domain_name": r"Domain\s+(\S+)", |
597 | 603 | "registrar": r"Billing\sContact:\n.*\n\s+Name:\s(.+)\n", |
598 | 604 | "registrant_country": None, |
599 | 605 | "expiration_date": r"Record expires on:\s+(.+)", |
600 | 606 | "creation_date": r"Record created:\s+(.+)", |
601 | 607 | "updated_date": r"Record last updated on:\s+(.+)", |
602 | | - "name_servers": None, |
603 | | - "status": None, |
| 608 | + # name servers have trailing whitespace |
| 609 | + "name_servers": r"Name servers in the listed order:\n\n(?:(\S+)[ \t]*\n)(?:(\S+)[ \t]*\n)?", |
| 610 | + "status": r"Domain\s+\S+\s+\((\S+)\)", |
604 | 611 | } |
605 | 612 |
|
606 | 613 | # Saint Kitts and Nevis |
|
652 | 659 | } |
653 | 660 |
|
654 | 661 | me = { |
| 662 | + # lines have \r |
655 | 663 | "extend": "biz", |
656 | | - "creation_date": r"Domain Create Date:\s?(.+)", |
657 | | - "expiration_date": r"Domain Expiration Date:\s?(.+)", |
658 | | - "updated_date": r"Domain Last Updated Date:\s?(.+)", |
659 | | - "name_servers": r"Nameservers:\s?(.+)", |
| 664 | + "creation_date": r"Creation Date:\s?(.+)", |
| 665 | + "expiration_date": r"Expiry Date:\s?(.+)", |
| 666 | + "updated_date": r"Updated Date:\s?(.+)", |
| 667 | + "name_servers": r"Name Server:\s*(\S+)\r?\n", |
660 | 668 | "status": r"Domain Status:\s?(.+)", |
661 | 669 | } |
662 | 670 |
|
|
721 | 729 | "domain_name": r"Domain name:\s?(.+)", |
722 | 730 | "name_servers": ( |
723 | 731 | r"""(?x: |
724 | | - Domain\ nameservers:[ \t]*\n |
725 | | - (?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n # ns1.tld.nl [A?] |
726 | | - (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns2.tld.nl [A?] |
727 | | - (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns2.tld.nl [AAAA?] |
728 | | - (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns3.tld.nl [A?] |
729 | | - (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns3.tld.nl [AAAA?] |
730 | | - (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns4.tld.nl [A?] |
731 | | - (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns4.tld.nl [AAAA?] |
732 | | - (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns5.tld.nl [A?] |
733 | | - (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns5.tld.nl [AAAA?] |
734 | | - # Don't check for final LF; there might be even more records.. |
| 732 | + Domain\ nameservers:\s+(\S+)\r?\n # the first |
| 733 | + (?:\s+(\S+)\r?\n)? # a optional 2th |
| 734 | + (?:\s+(\S+)\r?\n)? # a optional 3th |
| 735 | + (?:\s+(\S+)\r?\n)? # a optional 4th |
| 736 | + (?:\s+(\S+)\r?\n)? # a optional 5th |
| 737 | + # there may be more, best use host -t ns <domain> to get the actual nameservers |
735 | 738 | )""" |
736 | 739 | ), |
| 740 | + # the format with [A] or [AAAA] is no longer in use |
| 741 | + # "name_servers": ( |
| 742 | + # r"""(?x: |
| 743 | + # Domain\ nameservers:[ \t]*\n |
| 744 | + # (?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n # ns1.tld.nl [A?] |
| 745 | + # (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns2.tld.nl [A?] |
| 746 | + # (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns2.tld.nl [AAAA?] |
| 747 | + # (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns3.tld.nl [A?] |
| 748 | + # (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns3.tld.nl [AAAA?] |
| 749 | + # (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns4.tld.nl [A?] |
| 750 | + # (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns4.tld.nl [AAAA?] |
| 751 | + # (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns5.tld.nl [A?] |
| 752 | + # (?:(?:[ \t]+) (\S+) (?:[ \t]+\S+)? \n)? # opt-ns5.tld.nl [AAAA?] |
| 753 | + # # Don't check for final LF; there might be even more records.. |
| 754 | + # )""" |
| 755 | + # ), |
737 | 756 | "reseller": r"Reseller:\s?(.+)", |
738 | 757 | "abuse_contact": r"Abuse Contact:\s?(.+)", |
739 | 758 | } |
|
809 | 828 | } |
810 | 829 |
|
811 | 830 | pl = { |
| 831 | + # pl has lines ending in multiple line feeds \r and trailing whitespace |
812 | 832 | "extend": "uk", |
813 | 833 | "registrar": r"\nREGISTRAR:\s*(.+)\n", |
814 | 834 | "creation_date": r"\ncreated:\s*(.+)\n", |
815 | 835 | "updated_date": r"\nlast modified:\s*(.+)\n", |
816 | 836 | "expiration_date": r"\noption expiration date:\s*(.+)\n", |
817 | | - "name_servers": r"\nnameservers:\s*(.+)\n\s*(.+)\n", |
| 837 | + "name_servers": r"\nnameservers:(?:\s*(\S+)[ \t\r]*\n)(?:\s*(\S+)[ \t\r]*\n)?(?:\s*(\S+)[ \t\r]*\n)?", |
818 | 838 | "status": r"\nStatus:\n\s*(.+)", |
819 | 839 | } |
820 | 840 |
|
|
823 | 843 | } |
824 | 844 |
|
825 | 845 | pt = { |
| 846 | + # mboot 2022-11-16 |
| 847 | + # from aws frankfurt all ok, looks like network limitations |
| 848 | + # actually it sometimes works, most of the time though we get: connect: Network is unreachable |
826 | 849 | # looks like this is now a privateRegistry mboot: 2022-06-10, |
827 | 850 | # manual lookup: use the website at whois.dns.pt |
828 | | - "_privateRegistry": True, |
| 851 | + "_server": "whois.dns.pt", |
| 852 | + # "_privateRegistry": True, |
829 | 853 | "extend": "com", |
830 | 854 | "domain_name": r"Domain:\s?(.+)", |
831 | 855 | "registrar": None, |
832 | 856 | "creation_date": r"Creation Date:\s?(.+)", |
833 | 857 | "expiration_date": r"Expiration Date:\s?(.+)", |
834 | 858 | "updated_date": None, |
835 | | - "name_servers": r"Name Server:\s*(.+)", |
| 859 | + # nameservers have trailing info: Name Server: ns1.dnscpanel.com | IPv4: and IPv6: |
| 860 | + "name_servers": r"Name Server:(?:\s*(\S+)[^\n]*\n)(?:\s*(\S+)[^\n]*\n)?", |
836 | 861 | "status": r"Domain Status:\s?(.+)", |
837 | 862 | } |
838 | 863 |
|
|
910 | 935 |
|
911 | 936 | # Singapore - Commercial sub-domain |
912 | 937 | com_sg = { |
| 938 | + # uses \r nameservers have trailing whitespace |
913 | 939 | "extend": None, |
914 | 940 | "domain_name": r"Domain Name:\s?(.+)", |
915 | 941 | "registrar": r"Registrar:\s?(.+)", |
916 | | - "registrant": r"Registrant:\n\n\s?Name:\s?(.+)", |
| 942 | + "registrant": r"Registrant:\r?\n\r?\n\s*Name:\s*(.+)\r?\n", |
917 | 943 | "registrant_country": None, |
918 | 944 | "creation_date": r"Creation Date:\s?(.+)", |
919 | 945 | "expiration_date": r"Expiration Date:\s?(.+)", |
920 | 946 | "updated_date": r"Modified Date:\s?(.+)", |
921 | | - "name_servers": r"Name Servers:\s*(.+)\s*", |
922 | | - "status": None, |
923 | | - "emails": r"[\w.-]+@[\w.-]+\.[\w]{2,4}", |
| 947 | + "name_servers": r"Name Servers:\r\n(?:\s*(\S+)[ \t\r]*\n)(?:\s*(\S+)[ \t\r]*\n)?(?:\s*(\S+)[ \t\r]*\n)?", |
| 948 | + "status": r"Domain Status:\s*(.*)\r\n", |
| 949 | + # "emails": r"(\S+@\S+)", |
| 950 | + "emails": r"([\w\.-]+@[\w\.-]+\.[\w])", |
924 | 951 | } |
925 | 952 |
|
926 | 953 | # Slovakia |
|
981 | 1008 | "creation_date": r"Creation date\.+:\s?(.+)", |
982 | 1009 | "expiration_date": None, |
983 | 1010 | "updated_date": None, |
984 | | - "name_servers": r"DNS servers\s?Name\.+:\s?(.+)\s*Name\.+:\s?(.+)?", |
| 1011 | + "name_servers": r"DNS servers\n(?:Name\.+:\s*(\S+)\n)(?:Name\.+:\s*(\S+)\n)?(?:Name\.+:\s*(\S+)\n)?(?:Name\.+:\s*(\S+)\n)?", |
985 | 1012 | "status": r"Domain status\.+:(.+)", |
986 | 1013 | "emails": r"[\w.-]+@[\w.-]+\.[\w]{2,4}", |
987 | 1014 | } |
|
1047 | 1074 | "creation_date": r"Registered on:\s*(.+)", |
1048 | 1075 | "expiration_date": r"Expiry date:\s*(.+)", |
1049 | 1076 | "updated_date": r"Last updated:\s*(.+)", |
1050 | | - "name_servers": r"Name Servers:\s*(.+)\s*", |
| 1077 | + "name_servers": r"Name Servers:\s*(\S+)\r?\n(?:\s+(\S+)\r?\n)?(?:\s+(\S+)\r?\n)?(?:\s+(\S+)\r?\n)?", |
1051 | 1078 | "status": r"Registration status:\n\s*(.+)", |
1052 | 1079 | } |
1053 | 1080 |
|
|
1664 | 1691 | "updated_date": r"\s+Modified Date:\s+(.+)", |
1665 | 1692 | "status": r"\s+Domain Status:\s(.+)", |
1666 | 1693 | "registrant_country": None, |
1667 | | - "name_servers": None, # actually a multi line match: TODO |
| 1694 | + "name_servers": r"Name Servers:\s+(\S+)[ \t]*\r?\n\s+(\S+)[ \t]*\r?\n\s+(\S+)", |
1668 | 1695 | } |
1669 | 1696 |
|
1670 | 1697 | srl = { |
|
1692 | 1719 | "registrar": r"Registration\s+Service\s+Provider:\s+(.+)", |
1693 | 1720 | "updated_date": None, |
1694 | 1721 | "registrant_country": None, |
1695 | | - "name_servers": None, |
| 1722 | + "name_servers": r"Domain servers in listed order:\s*(\S+)[ \t]*\r?\n(?:\s+(\S+)[ \t]*\r?\n)?(?:\s+(\S+)[ \t]*\r?\n)?(?:\s+(\S+)[ \t]*\r?\n)?", |
1696 | 1723 | } |
1697 | 1724 |
|
1698 | | - |
1699 | 1725 | com_tw = { |
1700 | | - "_server": "tw", |
| 1726 | + "extend": "tw", |
1701 | 1727 | } |
1702 | 1728 |
|
1703 | 1729 | ug = { |
1704 | 1730 | "_server": "whois.co.ug", |
1705 | | - "extend": None, |
1706 | 1731 | "domain_name": r"Domain name:\s+(.+)", |
1707 | 1732 | "creation_date": r"Registered On:\s+(.+)", |
1708 | 1733 | "expiration_date": r"Expires On:\s+(.+)", |
|
1905 | 1930 | onion = {"extend": "_privateReg"} |
1906 | 1931 |
|
1907 | 1932 | # backend registry for domain names ending in GG, JE, and AS. |
| 1933 | +# lines may have \r actually before \n , updated all 3 domains return all nameservers |
1908 | 1934 | gg = { |
1909 | 1935 | "domain_name": r"Domain:\s*\n\s+(.+)", |
1910 | 1936 | "status": r"Domain Status:\s*\n\s+(.+)", |
1911 | 1937 | "registrar": r"Registrar:\s*\n\s+(.+)", |
1912 | | - "name_servers": r"Name servers:\s*\n\s+(.+)\n\s+(.+)", |
| 1938 | + "name_servers": r"Name servers:\s*\r?\n(?:\s+(\S+)\r?\n)(?:\s+(\S+)\r?\n)?(?:\s+(\S+)\r?\n)?", |
1913 | 1939 | "creation_date": r"Relevant dates:\s*\n\s+Registered on(.+)", |
1914 | 1940 | "expiration_date": None, |
1915 | 1941 | "updated_date": None, |
|
0 commit comments