web-dev-qa-db-ja.com

どのように私はipv6ベースのループバックのために:: 1で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

提案を見て - そして一般的なエラーの内訳 - このブログ記事 で、おそらくこれを試すべきです。

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

-gはこれを機能させるための魔法の鍵と思われます。 curl のmanページで説明されているように、

このオプションは "URL globbing parser"をオフにします。このオプションを設定すると、文字{} []を含むURLをcurl自体で解釈させずに指定できます。これらの文字は通常の合法的なURLコンテンツではありませんが、URI標準に従ってエンコードする必要があります。

そして-6はIPv6のみを使用することを意味します。

Libcurlがアドレスを複数のIPバージョンに解決できる場合(IPv6対応の場合)、このオプションはlibcurlに名前をIPv6アドレスのみに解決するように指示します。

しかし、その機能の説明を読むと、-6は純粋なIPv6アドレスには本当に必要ではないようです。 IPv4アドレスとIPv6アドレスが接続されているホスト名にcurlを使用している場合のみ、IPv6が優先されます。注意すべき点があります。

41
JakeGould

"curl --manual"から、私はこれを見つけました:

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

または

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

だから、あなたが求めているアドレスについては、試してみてください。

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

ただし、実行することがあります。

curl -V

そして、IPv6が "Features"と書かれた行(3行目、Wordの折り返しから余分な行を数えない)に現れるかどうかを確かめてください。私は自分のバージョンがそうではないことに気づきました。 cURLダウンロードページ には、 curl 7.41.0ダウンロードサイト (現在最新バージョン)を含む、オペレーティングシステム用のさまざまなリンクがあります。マイクロソフトウィンドウズ。そのページには複数の実行ファイルがあります(Microsoft Windowsで利用可能)。私が最初に見つけたものはIPv6をサポートしていませんでした。しかし、 "ipv6-sspi-spnego-winssl"(1つはx86用、もう1つはx64用)と説明されている2つは次のようになりました。curl -VはIPv6を示しました。そのため、どのパッケージをダウンロードするのかに注意してください。

8
TOOGAM