[ 備忘録 / Python ] IPv6 any address
socket.INADDR_ANY は IPv4 用なので IPv6 では使えない。
Linux ならば、IPv6 の場合は setsockopt でソケットオプションを自分で指定することで可能。
import socket
listen_any_address = socket.socket( socket.AF_INET6, socket.SOCK_DGRAM )
listen_any_address.setsockopt( socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0 )
listen_any_address.bind( ("::", 12345) )
netstat で確認すると any address で待ち受けているのが確認できる。
$ netstat -anp | grep udp
udp6 0 0 :::12345 :::* 17343/python
Windows では setsockopt に IPV6_V6ONLY を指定できないのでこの方法は使えません。
Windows 版 Python で IPv6 any address を使用する方法をご存知の方。ご教授お願いします。
| 固定リンク | コメント (4) | トラックバック (0)