list of 2ld.1ld (2nd level domain.1st(top)level domain) names?

There are answers here. Most of them are relating to the use of http://publicsuffix.org/, and even some implementations to use it were given in some languages, like Ruby.


To get all the ICANN domains, this python code should work for you:

import requests
url = 'https://publicsuffix.org/list/public_suffix_list.dat'
page = requests.get(url)

icann_domains = []
for line in page.text.splitlines():
    if 'END ICANN DOMAINS' in line:
        break
    elif line.startswith('//'):
        continue
    else:
        domain = line.strip()
        if domain:
            icann_domains.append(domain)

print(len(icann_domains)) # 7334 as of Nov 2018

Remove the break statement to get private domains as well.

Be careful as you will get some domains like this: *.kh (e.g. http://www.mptc.gov.kh/dns_registration.htm). The * is a wildcard.