From: kotaro Date: 2002-10-30T00:03:40+09:00 Subject: [ruby-list:36229] Re. IPv6アドレスをbindする方法が分かりません こんばんわ。コタロです。 自己リプライします。 (前回うっかりHTML形式でメール出してしまいました。 失礼しました・・(^^;; ) >実は、IPv6を使ってUDP(またはTCP)サーバ・クライアント >ソフトを組もうとしているのですが、 >IPv6アドレスをbindする方法が分かりません。 >(具体的にはbindの引数に、どのようにpackした文字列を >渡せば良いのかが分かりません) 以下のようなコードで一応 IPv6パケットを飛ばすことが確認出来ました。 ☆もし、もっと良い手法がありましたらば    どなたか教えて頂けると嬉しいです。 本当はUDPSocketを使用すれば、もっと簡単に なりそうなのですが、様々なプロトコルパケットを 送信するツールを作りたいので、あえてSocketを 使用してます。 ----IPv6-------------------------------- require "socket" include Socket::Constants udp = Socket.open(PF_INET6, SOCK_DGRAM, 0) addr = [AF_INET6, 1500, 0, 0xff80, 0x0, 0x0, 0x0, 0x0 ,0x290, 0x792, 0xfad3, 0].pack("snln8l") # アドレスは適当です。 udp.connect(addr) udp.send("test",0) ☆ちなみにIPv6のsockaddr_in6は   これで合っているのでしょうか? struct sockaddr_in6 { u_int16_t sin6_family; /* AF_INET6 */ u_int16_t sin6_port; /* port number */ u_int32_t sin6_flowinfo; /* IPv6 flow information */ struct in6_addr sin6_addr;/* IPv6 address */ u_int32_t sin6_scope_id; /* Scope id (new in 2.4) */ }; struct in6_addr { unsigned char }; ------------------------ from KOTARO