22930


`/etc/hosts` の一覧において

[code]

    127.0.0.1   localhost
    255.255.255.255 broadcasthost
    ::1             localhost
    
[/code]

とあり、 `127.0.0.1` が ローカルホストを意味する IPアドレスであることはインターネット上のルールとして知っていますが  
`::1` はなぜ ローカルホストにループバックするのでしょう？

`::1` がIPとして有効なのか確かめるためにブラウザのアドレスバーに <http://::1> と入力しましたがローカルホストには接続できませんでした。

初歩的な質問ですがどなかたわかる方いらっしゃいますか？


CC BY-SA 3.0
2016-03-08T09:27:15.563
22927
2016-03-09T05:04:32.253
2016-03-08T17:08:39.383
5505
5505
question
linux network
::1 が ローカルホストのIPとなるのはなぜ？


IPv4上の `127.0.0.1` と同様、`::1` はIPv6上でlocalhostを表すループバックアドレスです。

IPv6アドレスは128ビットを8つに分けて16進数で表記されるので `0000:0000:0000:0000:0000:0000:0000:0001`
ですが、[各ブロック先頭の0を省略できる、連続した0のブロックは`::`で省略できる](https://ja.wikipedia.org/wiki/IPv6%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9#.E6.8E.A8.E5.A5.A8.E3.81.95.E3.82.8C.E3.81.9F.E3.83.86.E3.82.AD.E3.82.B9.E3.83.88.E8.A1.A8.E7.8F.BE)という決まりがあるため、
`::1` と表記できます。

IPv4アドレスと異なり、IPv6アドレスの区切り文字であるコロンは、URLにおいてはホスト名とポート番号の区切りにも使われています。そのため、URLに書く際は
`[]` で囲むルールになっています。

よって、 <http://[::1]/> と入力すればブラウザでもアクセスできるかと思います。

参考 [IPv6アドレス -
Wikipedia](https://ja.wikipedia.org/wiki/IPv6%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9)


CC BY-SA 3.0
2016-03-08T11:02:37.107
22930
2016-03-09T05:04:32.253
2016-03-09T05:04:32.253
76
8000
22927
answer