Si aucun schéma n'est présent (pas de deux-points dans la chaîne), ajoutez "http: //" pour en faire une URL valide.
Transmettez la chaîne à Uri constructor.
Accédez au code Host property de l'URI.
Maintenant, vous avez le nom d'hôte. Ce que vous considérez exactement comme le «nom de domaine» d'un nom d'hôte donné est un point discutable. Je suppose que vous ne voulez pas simplement dire tout après le premier point.
Il n'est pas possible de distinguer les noms d'hôtes tels que 'whatever.youdomain.com' de domaines-dans-un-SLD comme 'warwick.ac.uk' des seules chaînes de caractères. En effet, il y a même un peu de zone grise sur ce qui est et n'est pas un SLD public, étant donné les efforts de certains bureaux d'enregistrement pour se tailler des créneaux.
Une approche courante consiste à conserver une grande liste de SLD et d'autres suffixes utilisés par des entités non apparentées. C'est ce que les navigateurs Web font pour empêcher le partage de cookies publics indésirables. Une fois que vous avez trouvé un suffixe public, vous pouvez ajouter le préfixe le plus proche dans le nom d'hôte divisé par des points pour obtenir l'entité de plus haut niveau responsable du nom d'hôte donné, si c'est ce que vous voulez. Les listes de suffixes sont un enfer à maintenir, mais vous pouvez vous appuyer sur someone else's efforts. Sinon, si votre application dispose de l'heure et de la connexion réseau pour le faire, elle peut commencer à rechercher des informations sur le nom d'hôte. par exemple. il pourrait faire une requête whois pour le nom d'hôte, et continuer à regarder chaque parent jusqu'à ce qu'il obtienne un résultat et ce serait le nom de domaine de l'entité de plus bas niveau responsable du nom d'hôte donné.Ou, si tout cela est trop de travail, vous pouvez essayer de couper tout «www» présent de premier plan!
+1 pour utiliser les ressources existantes –
Il existe une bibliothèque C# opensource qui utilise publicsuffix.org pour analyser les domaines, ici: http://code.google. com/p/domainname-parser / –