自作プログラムのIPv6対応 (2) sockaddr(または文字列)を使う、in_addr/in6_addrは使わない 領域確保にはsockaddr_storage 128bitではscope identifierが格納できないの listening socketはAF_INETとAF_INET6の2本開ける IPv4 mapped addressは使わない - セキュリティホールのもとです 区切り字にコロン/パーセントを使わない fe80::290:27ff:fe96:1ce1%fxp0 どうしても必要なら[addr]:port (RFC2732) IPv6アドレスをparseするのはgetaddrinfoに任せる 正規表現で書くのは大変めんどくさい 場合によっては、ユーザにIPアドレスを書かせるのは忘れてよいかもしれない DNSをちゃんと設定すべき、または/etc/hosts getservby*も使わない方が綺麗に書ける サービス名を文字列でとってgetaddrinfo