¿Alguien tiene alguna gran idea además de almacenar una lista de todos los TLD?
No, porque cada TLD difiere en lo que cuenta como subdominio, dominio de segundo nivel, etc.
Tenga en cuenta que existen dominios de nivel superior, dominios de segundo nivel y subdominios. Técnicamente hablando, todo excepto el TLD es un subdominio.
En el ejemplo de domain.com.uk, "dominio" es un subdominio, "com" es un dominio de segundo nivel y "uk" es el TLD.
Por tanto, la cuestión sigue siendo más compleja que a primera vista y depende de cómo se gestione cada TLD. Necesitará una base de datos de todos los TLD que incluyen su partición particular y lo que cuenta como dominio de segundo nivel y subdominio. Sin embargo, no hay demasiados TLD, por lo que la lista es razonablemente manejable, pero recopilar toda esa información no es trivial. Es posible que ya exista una lista de este tipo.
Parece que http://publicsuffix.org/ es una de esas listas: todos los sufijos comunes (.com, .co.uk, etc.) en una lista adecuada para la búsqueda. Aún no será fácil analizarlo, pero al menos no tiene que mantener la lista.
Un "sufijo público" es aquel bajo el cual los usuarios de Internet pueden registrar nombres directamente. Algunos ejemplos de sufijos públicos son ".com", ".co.uk" y "pvt.k12.wy.us". La lista de sufijos públicos es una lista de todos los sufijos públicos conocidos.
La lista de sufijos públicos es una iniciativa de la Fundación Mozilla. Está disponible para su uso en cualquier software, pero se creó originalmente para satisfacer las necesidades de los fabricantes de navegadores. Permite a los navegadores, por ejemplo:
- Evite que se establezcan "supercookies" que dañan la privacidad para sufijos de nombres de dominio de alto nivel
- Resalte la parte más importante de un nombre de dominio en la interfaz de usuario
- Ordene con precisión las entradas del historial por sitio
Mirando la lista , puede ver que no es un problema trivial. Creo que una lista es la única forma correcta de lograr esto ...