web-dev-qa-db-fra.com

Comment utiliser curl avec :: 1 pour le bouclage basé sur ipv6?

J'ai essayé quelques moyens mais ils semblent confondre curl.

root@testt:~# curl localhost:8080
<h1>Hello world!</h1>

<p>Boom Bam Splat</p>
root@testt:~# curl ::1:8080
curl: (3) IPv6 numerical address used in URL without brackets
root@testt:~# curl [::1]:8080
curl: (3) [globbing] bad range specification in column 2
25
hak8or

En regardant les suggestions - et la répartition des erreurs communes - sur ce blog , vous devriez peut-être essayer ceci.

curl -g -6 "http://[::1]:8080/" 

Le -g semble être la clé magique pour que cela fonctionne. Comme expliqué dans la curl page de manuel:

Cette option désactive "l'analyseur de globalisation d'URL". Lorsque vous définissez cette option, vous pouvez spécifier des URL contenant les lettres {} [] sans les interpréter elles-mêmes. Notez que ces lettres ne sont pas des contenus d'URL légaux mais qu'elles doivent être codées conformément à la norme URI.

Et le -6 signifie qu’on utilise uniquement IPv6:

Si libcurl est capable de résoudre une adresse en plusieurs versions IP (ce qui est le cas si elle est compatible IPv6), cette option indique à libcurl de résoudre les noms en adresses IPv6 uniquement.

Mais en lisant cette description de fonctionnalité, il semble que -6 n’est pas vraiment nécessaire pour une adresse IPv6 pure; que si on utilise curl sur un nom d’hôte auquel une adresse IPv4 et une adresse IPv6 sont connectées, il préférerait donc l’IPv6. Juste quelque chose à noter.

41
JakeGould

De "curl --manual", j'ai trouvé ceci:

curl -g "http://[2001:1890:1112:1::20]/"

ou

curl "http://[2001:1890:1112:1::20]/"

Alors, pour l'adresse dont vous parlez, essayez:

curl -g "http://[::1]:8080/"

Cependant, vous voudrez peut-être exécuter:

curl -V

et voyez si IPv6 apparaît sur la ligne portant la mention "Fonctionnalités" (la troisième ligne, sans compter les lignes supplémentaires provenant du retour à la ligne dans Word). J'ai trouvé ma version non. La page de téléchargement cURL contient divers liens pour les systèmes d'exploitation, notamment curl 7.41.0 site de téléchargement (qui est actuellement la dernière version) pour Microsoft Windows. Cette page contient plusieurs exécutables (disponibles pour Microsoft Windows). le premier que j'ai trouvé ne supportait pas IPv6. Mais les deux décrits comme "ipv6-sspi-spnego-winssl" (un pour x86 et un pour x64) ont: curl -V a montré IPv6. Alors faites attention au paquet que vous téléchargez.

8
TOOGAM