usakdsteen

ゆうさくですてぃーん

るーぷばっくあどれす

IPアドレスループバックアドレスというアドレスがあり

PC内(ローカル内?)だけで使えるIPアドレスということなのはまぁ知らなくもなかったが

127.0.0.1~127.255.255.254までの範囲が使えるということまでは知らなかった…(というより記憶から消えてた…)

ここ最近はずっと127.0.0.1だけだと思ってた…(酷い)

 

 

今使ってるブラウザはvivaldiなんだけど

vivaldiで画像やJSやCookieの有効無効がホスト名(?)単位で設定でき、

ループバックアドレス127.0.0.1と127.0.0.2では別々に設定できるぽい

ローカル内で異なる用途のページ表示するとき

別々のアドレス割り当てればCookieも別々管理できそう(?)なので使い分けとかできそう?(まだ試してないが

 

 

ところで

phpのビルトインサーバーは

php -S 127.0.0.1:8000 とすると 127.0.0.1:8000 か localhost:8000 にアクセスするとページ表示できて

php -S :8000 とすると localhost:8000 にしないとアクセスできなかった ( ログ見ると、[::1]のIPv6の扱いぽいんだけど、よく分からん…

 

一方、goのnet/httpのServerは

http.ListenAndServe("127.0.0.1:8000",nil)とするとPHPと同様に 127.0.0.1:8000 か localhost:8000でアクセスなんだけど

http.ListenAndServe(":8000",nil)とすると 127.0.0.1:8000でも 127.0.0.2:8000でも 127.1.2.3:8000でも localhost:8000でもループバックアドレスなら何ででもアクセスできたけど…

これはよくわからん…(流石に内部実装を追う気にはなれなかった…深すぎるため

 Goのは内部でListen( https://golang.org/pkg/net/#Listen )を呼び出してるぽさげなんだけど、アドレス指定で何かしら省略した場合によくわからんが何か自動補完(?)されるらしい、(英語わからん、Dial( https://golang.org/pkg/net/#Dial )の説明読めとは書いてあるが、まぁ難しいね・・・

 どうもListenの説明のとこのこれが答えっぽい・・・?

For TCP networks, if the host in the address parameter is empty or a literal unspecified IP address, Listen listens on all available unicast and anycast IP addresses of the local system.

https://golang.org/pkg/net/#Listen