(重複する場合はこのスレッドを閉じてください。一生懸命試しましたが、一致する質問が見つかりませんでした)
一部の OS/プラットフォームは、IPv6 ウィドカード アドレスにバインドされている場合、IPv6 と IPv4 (tcp) の両方の接続をリッスンしているようですが、一部は IPv6 のみをリッスンしています。
次の行で:
プラットフォームがこのオプションの無効化をサポートしていないが、それでも AF_INET と AF_INET6 の両方の接続をリッスンしたい場合は、各プロトコルにバインドされた 2 つのリッスン ソケットを作成する必要があります。
また、セクション「Java プラットフォームでの IPv6 の仕組み」
そして、このSOの質問の正解に従って
ここで、基礎となる OS/プラットフォームが IPv6 と IPv4 (IPv6 にバインドされている場合) の両方をリッスンするかどうかを判断できる Perl コードを書きたいと思います。 1 つは IPv4 用、もう 1 つは IPv6 用です)。
これには何が最善の方法でしょうか?
IO::Socket::IPで述べたように、私は使用できます
if( IO::Socket::IP->CAN_DISABLE_V6ONLY ) {
...
}
else {
...
}
しかし、それが正確に教えてくれるかどうかはわかりません
基盤となる OS/プラットフォームが IPv6 と IPv4 の両方をリッスンする場合 (IPv6 にバインドされている場合)
または、単に
IPV6_V6ONLY ソケット オプションを無効にすることはできません