2016-10-11 8 views
1

私はLinux、Mac OSX、CygwinなどのさまざまなPOSIX環境で実行されているシェルスクリプトを持っています。指定されたシステムでIPv6が有効になっている場合、スクリプトは確実に検出する必要があります。例えば。私は少なくともIPv6ローカルループバック(:: 1)を使用することができます。 質問: システムがUNIXシェルでPOSIX互換の方法でipv6を有効にしているかどうかを検出するにはどうすればいいですか?UNIXシェルスクリプトでシステムがIPv6を有効にしているかどうかを検出するにはどうすればいいですか?

+2

これらはすべてIPv6をサポートしています。彼らはそれが有効かどうかをテストすることを意味しますか?グローバルアドレスを持っていますか?または既定のルートですか?または、他の何か? –

+0

良い点。ありがとうございました。 _Enabled_ IPv6が必要です - 質問を編集しました。 –

+1

各デバイスごとにIPv6を個別に有効にすることができます。ループバックデバイス用にIPv6が有効になっているかどうかの確認は、後で行うことであると私が判断したときに、あなたの質問を正しく読んでいますか? –

答えて

4

これは、次のように/proc/net/if_inet6のexistanceを確認することでテストすることができます。

test -f /proc/net/if_inet6 && echo "IPv6 supported" || echo "IPv6 not supported" 

私はWindowsでのUbuntu、ミント、ラズベリーPIとBashシェルでそれをテストしてみた、そしてそれはすべてのこれらの環境で動作します。

+2

ありがとうございます。 Mac OSXでは、「/ proc/net/if_inet6」がLinux固有のものであるため、間違って「IPv6はサポートされていません」と表示されます。 –

+0

'sysctl -a | grep disable_ipv6'? – Bouke

+0

'&&'の前に '||' edテストとしてテストできるOSXの他のパス?皆さんお元気で。 – shellter

関連する問題