100 votes

Comment distinguer l'hôte et le port dans une URL IPv6 ?

Les URL ont toujours ce format :

<protocol>://<host>[:<port>]/[<path>][#<hash>]

Le problème est que l'IPv6 utilise des deux-points, tout comme le séparateur de port et d'hôte, par ex :

2001:db8:1f70::999:de8:7648:6e8

Mais que faire si c'est l'hôte et que je veux m'y connecter avec HTTP sur le port 100 ?

http://2001:db8:1f70::999:de8:7648:6e8:100/

Le problème, c'est les deux derniers points. Puisque les zéros sont omis avec les doubles-colonnes (entre 1f70 et 999), on ne sait pas si ':100' appartient à l'IP ou au numéro de port. Comment pouvons-nous le savoir ?

137voto

sysadmin1138 Points 129885

Dans ce cas, la notation consiste à encoder le numéro IPv6 entre crochets :

http://[2001:db8:1f70::999:de8:7648:6e8]:100/

C'est RFC 3986 , section 3.2.2 : Hôte

Un hôte identifié par une adresse littérale de protocole Internet, version 6 [RFC3513] ou ultérieure, est distingué par l'inclusion de l'adresse littérale IP entre crochets ("[" et "]"). C'est le seul endroit où les crochets sont autorisés dans la syntaxe URI. Dans l'anticipation de futurs formats d'adresse IP non encore définis, une implémentation peut utiliser un drapeau de version optionnel pour indiquer un tel pour indiquer explicitement un tel format plutôt que de se fier à une détermination heuristique.

44 votes

Il convient de souligner que les parenthèses sont les suivantes no facultatif. C'est le seul mécanisme non ambigu par lequel le navigateur peut identifier une adresse numérique IPv6.

0 votes

Le port ne devrait-il pas se trouver à l'intérieur des supports ?

3 votes

@jayarjo Non, car les parenthèses sont là pour fournir une désambiguïsation entre l'adresse IP, qui contient des deux-points, et le port, qui est séparé de l'adresse IP par un deux-points.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X