Quelqu'un a-t-il de bonnes idées en plus de stocker une liste de tous les TLD?
Non, car chaque TLD diffère sur ce qui compte comme un sous-domaine, un domaine de deuxième niveau, etc.
Gardez à l'esprit qu'il existe des domaines de premier niveau, des domaines de second niveau et des sous-domaines. Techniquement parlant, tout sauf le TLD est un sous-domaine.
Dans l'exemple domain.com.uk, "domain" est un sous-domaine, "com" est un domaine de second niveau et "uk" est le TLD.
La question reste donc plus complexe qu'à première vue, et cela dépend de la manière dont chaque TLD est géré. Vous aurez besoin d'une base de données de tous les TLD qui incluent leur partitionnement particulier, et ce qui compte comme un domaine de deuxième niveau et un sous-domaine. Cependant, il n'y a pas trop de TLD, donc la liste est raisonnablement gérable, mais la collecte de toutes ces informations n'est pas anodine. Une telle liste est peut-être déjà disponible.
On dirait que http://publicsuffix.org/ est une de ces listes - tous les suffixes courants (.com, .co.uk, etc.) dans une liste adaptée à la recherche. Il ne sera toujours pas facile de l'analyser, mais au moins vous n'avez pas à maintenir la liste.
Un «suffixe public» est celui sous lequel les internautes peuvent enregistrer directement des noms. Quelques exemples de suffixes publics sont ".com", ".co.uk" et "pvt.k12.wy.us". La liste des suffixes publics est une liste de tous les suffixes publics connus.
La liste publique des suffixes est une initiative de la Fondation Mozilla. Il est disponible pour être utilisé dans n'importe quel logiciel, mais a été créé à l'origine pour répondre aux besoins des fabricants de navigateurs. Il permet aux navigateurs, par exemple:
- Évitez de définir des "supercookies" nuisibles à la confidentialité pour les suffixes de nom de domaine de haut niveau
- Mettez en évidence la partie la plus importante d'un nom de domaine dans l'interface utilisateur
- Trier avec précision les entrées d'historique par site
En parcourant la liste , vous pouvez voir que ce n'est pas un problème trivial. Je pense qu'une liste est la seule façon correcte d'accomplir cela ...