8
votes

Comment identifier le domaine de niveau supérieur d'un objet URL à l'aide de Java?

donné ceci: xxx

Comment identifier le domaine de niveau supérieur de l'URL ..


2 commentaires

Très similaire, à peu près un duplicata: Stackoverflow. com / questions / 1379958 / ...


... "Domaine de haut niveau"! = "Nom de domaine" (... "UK"! = "www.amazon.co.uk")


4 Réponses :


1
votes

Utilisez URL # gethost () et si nécessaire par la suite un String # Split () sur " \\. "

mise à jour : si vous avez une adresse IP comme hôte, vous devez utiliser INETADDRESS # GETHOSTNAME () de manière indépendante.


2 commentaires

Chaîne [] hotokens = u.gethost (). Tostring (). Split ("."); Y a-t-il quelque chose de mal avec cette ligne .. Étant donné que, après cette déclaration, la longueur du tableau HTOKENS reste toujours 0.


Le lien mentionne qu'il faut un motif de regex. La réponse mentionne que vous devez scinder sur "\\." .



3
votes

La partie hôte de l'URL est conforme à la RFC 2732 selon la Docs . Cela impliquerait que simplement diviser la chaîne que vous obtenez de xxx

ne suffirait pas. Vous devrez vous assurer que vous êtes conforme au RFC 2732 lors de la recherche de l'hôte ou si vous pouvez vous garantir que toutes les adresses sont de la formulaire Server.com, vous pouvez rechercher le dernier. dans la corde et saisissez le TLD.


0 commentaires

5
votes

Vous voulez donc avoir le partie de domaine de niveau supérieur uniquement?

ukString TLD: uk
deString TLD: de
ceShiString TLD: 测试
dokimeString TLD: δοκιμή
nullString TLD: null
lolString TLD: null


1 commentaires

Votre solution manque sur les domaines .co.uk par exemple



7
votes

GUAVA fournit une bonne utilité pour cela. Cela fonctionne comme suit:

InternetDomainName.from ("soinl.co.uk"). Publicsuffix () vous obtiendra co.uk InternetDomainName.from ("quelqueural.de"). Publicsuffix () vous obtiendra de


0 commentaires