it-swarm.com.de

Wie kann ich Curl mit :: 1 für ipv6-basiertes Loopback verwenden?

Ich habe ein paar Möglichkeiten ausprobiert, aber sie scheinen die Locke zu verwirren.

[email protected]:~# curl localhost:8080
<h1>Hello world!</h1>

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

Wenn Sie sich die Vorschläge - und die Aufschlüsselung der häufigsten Fehler - in diesem Blog-Beitrag ansehen , sollten Sie dies vielleicht versuchen.

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

Der -g scheint der magische Schlüssel zu sein, um dies zum Laufen zu bringen. Wie auf der Manpage curl erklärt:

Diese Option schaltet den "URL Globbing Parser" aus. Wenn Sie diese Option aktivieren, können Sie URLs angeben, die die Buchstaben {} [] enthalten, ohne dass sie von curl selbst interpretiert werden. Beachten Sie, dass diese Buchstaben keine legalen URL-Inhalte sind, sondern gemäß dem URI-Standard codiert werden sollten.

Und der -6 bedeutet, nur IPv6 zu verwenden:

Wenn libcurl eine Adresse in mehrere IP-Versionen auflösen kann (wenn es IPv6-fähig ist), weist diese Option libcurl an, Namen nur in IPv6-Adressen aufzulösen.

Aber wenn man diese Funktionsbeschreibung liest, sieht es so aus, als würde -6 für eine reine IPv6-Adresse nicht wirklich benötigt. Nur wenn curl für einen Hostnamen verwendet wird, mit dem eine IPv4- und IPv6-Adresse verbunden ist, wird IPv6 bevorzugt. Nur etwas zu beachten.

41
JakeGould

Aus "curl --manual" fand ich Folgendes:

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

oder

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

Also, für die Adresse, nach der Sie fragen, versuchen Sie:

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

Möglicherweise möchten Sie jedoch Folgendes ausführen:

curl -V

und prüfen Sie, ob IPv6 in der Zeile mit der Aufschrift "Features" angezeigt wird (die dritte Zeile ohne zusätzliche Zeilen aus dem Zeilenumbruch). Ich fand meine Version nicht. Die cURL-Downloadseite enthält verschiedene Links für Betriebssysteme, einschließlich der Curl 7.41.0-Downloadseite (dies ist die aktuellste Version) für Microsoft Windows. Diese Seite enthält mehrere ausführbare Dateien (verfügbar für Microsoft Windows). Das erste, das ich fand, unterstützte IPv6 nicht. Aber die beiden als "ipv6-sspi-spnego-winssl" beschriebenen (eine für x86 und eine für x64) haben: curl -V hat IPv6 gezeigt. Achten Sie also darauf, welches Paket Sie herunterladen.

8
TOOGAM