La fonction NET_PUBLIC_SUFFIX extrait le suffixe public (tel que com, org ou net) d’une URL de type STRING.
Remarques
Un suffixe public est un domaine ICANN enregistré sur publicsuffix.org. Bien que les données de publicsuffix.org incluent également des domaines privés, cette fonction les ignore.
Syntaxe
STRING NET_PUBLIC_SUFFIX(STRING <url>)
Paramètres
url : obligatoire. Type STRING. URL à analyser.
Pour obtenir des résultats d’analyse optimaux, l’URL doit respecter le format défini par la RFC 3986.
Valeur renvoyée
Renvoie une valeur de type STRING. La fonction renvoie NULL si l’une des conditions suivantes est remplie :
Impossible d’extraire le nom d’hôte (hostname) de l’entrée ;
Le nom d’hôte (hostname) extrait contient des points adjacents en son milieu (ni au début, ni à la fin) ;
Le nom d’hôte (hostname) extrait ne contient aucun suffixe public.
Les données relatives aux suffixes publics peuvent évoluer avec le temps. Par conséquent, une entrée qui produit actuellement un résultat NULL pourrait générer une valeur non NULL à l’avenir.
Fonctions d’analyse associées
Pour analyser d’autres parties de l’URL que le suffixe public, utilisez les fonctions suivantes :
NET_HOST : extrait le nom d’hôte (hostname) de l’URL fournie.
NET_REG_DOMAIN : extrait le nom de domaine enregistré ou enregistrable de l’URL fournie (c’est-à-dire le suffixe public plus l’étiquette précédente).
Exemples
SELECT input
,description
,NET_HOST(input) AS HOST
,NET_PUBLIC_SUFFIX(input) AS SUFFIX
,NET_REG_DOMAIN(input) AS DOMAIN
FROM (
SELECT "" AS input, "invalid input" AS description
UNION ALL SELECT "http://abc.xyz", "standard URL"
UNION ALL SELECT "//user:password@a.b:80/path?query",
"standard URL with relative scheme, port, path and query, but no public suffix"
UNION ALL SELECT "https://[::1]:80", "standard URL with IPv6 host"
UNION ALL SELECT "http://例子.卷筒纸.中国", "standard URL with internationalized domain name"
UNION ALL SELECT " www.Example.Co.UK ",
"non-standard URL with spaces, upper case letters, and without scheme"
UNION ALL SELECT "mailto:?to=&subject=&body=", "URI rather than URL--unsupported"
);
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
| input | description | host | suffix | domain |
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
| | invalid input | NULL | NULL | NULL |
| http://abc.xyz | standard URL | abc.xyz | xyz | abc.xyz |
| //user:password@a.b:80/path?query | standard URL with relative scheme, port, path and query, but no public suffix | a.b | NULL | NULL |
| https://[::1]:80 | standard URL with IPv6 host | [::1] | NULL | NULL |
| http://例子.卷筒纸.中国 | standard URL with internationalized domain name | 例子.卷筒纸.中国 | 中国 | 卷筒纸.中国 |
| www.Example.Co.UK | non-standard URL with spaces, upper case letters, and without scheme | www.Example.Co.UK | Co.UK | Example.Co.UK |
| mailto:?to=&subject=&body= | URI rather than URL--unsupported | mailto | NULL | NULL |
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
Fonctions associées
La fonction NET_PUBLIC_SUFFIX fait partie des fonctions réseau. Pour plus d’informations sur les autres fonctions liées au réseau, consultez la page Network Functions Overview.